あの鳥に真言を読ませてみる。2あの鳥に真言を読ませてみる。~zenlogicでtwitterのbotを作ってみた~Twitterbotボードゲーム仏教Zenlogicイントロダクション私は2年ほど前から趣味でアナログゲーム作りをしています。大した作品を世に放ったたわけでもないですが、今日は大枚はたいて東京まで赴きこれに出てます。出るならと、新作を作りました。名前のとおり「真言を読み上げて該当する仏画をとる」という出落ちみたいなゲームです。「聖☆おにいさん」というまんがのオチを理解するために宗教の勉強し始めこんなゲームを作るぐらいにハマるとは感慨深いものがあります。ハマると言っても宗教「史」にハマっているだけで、特定の神様を信仰したり、出家したいわけじゃありません。ほんの「ベンチャーのノリで『宗教立ち上げない?』と誘われたら迷う」程度のハマり具合です。行っているので、さながら会社経営をしているようでなかなか面白いです。実績のない私とって「広告宣伝活動」は苦労するものです。やってみたいと思います。ボットの仕様ダラダラ真言をつぶやいてもいいのですが、ウザくなりそうなので、返信型が良いでしょうbotにはなしかけると、数枚の仏画とともに真言をつぶやいてくるので、該当する仏様を当てるうん、カルタっぽい!こんな仕様でええでしょうフローを考えるDBから前回の実行時間を取得1で取得した時間以降でbotへのつぶやきを取得DBから真言と画像をランダムにピックアップ返信ツイートをする実行時間を退避1分おきに繰り返すとりあえずこんな感じ実行環境を考えるラズパイさんを使ってもいいのですが、24-365動いてほしいのでファーストサーバのサービスでもあるZenlogicに働いていただきましょう。データベースを準備するとりあえずDBがいるのでMySQL5.1を設定。phpMyAdminというDB管理ツールも簡単インストールから入れておきます。ボタン押すだけだから簡単だね。適当に真言を入れるテーブル作って入れてます。途中データの修正できないトラブルがあったので客を装ってクレームいれてやろうとおもいましたが、ちゃんとFAQが用意されていました。https://faq.zenlogic.jp/faqs/FAQ01203PHPを準備するtwitterへの命令はPHPが相性良さそうなので、とりあえず最新の7.1を使えるよう設定します。下位互換がされていないので、ググったサンプルをコピペというわけには行かないようです。データベース・アクセス系のコマンドmysql_connectは使えないのでmysqli_connectを使うようにしましょうtwitterの準備アカウントを取って、APIを使えるようにします。この辺の記事を参考にさせていただきましたhttps://weblabo.oscasierra.net/php-twitteroauth/ハマったところは「TwitterOAuth」の作者様がアブラハム氏だったので「すわっ!イサクのお父さん!?」と思いながら数十分ほどwikipediaを読んでしまったぐらいです。ツイートを取得するこの辺を参照させていただきました。https://qiita.com/tsumugu/items/e23481626cb6309a249chttps://syncer.jp/Web/API/Twitter/REST_API/GET/statuses/mentions_timeline/またsince_idを使うと、そのid以降のツイートのみを検索できるようなのでフローを修正DBから前回のidを取得1で取得したid以降でbotへのつぶやきを取得DBから真言と画像をランダムにピックアップ返信ツイートをする2で取得したツイートのidを退避1分おきに繰り返すツイートするこの辺を参照させていただきました。https://qiita.com/noir/items/b631ed274770eef26445案外簡単です。あとは適当にプログラムします。受信は1分おきにしたいのでcronを使いますが、Webから起動したら動いたのに、Cronにしたら動いてくれませんでも大丈夫この程度のプログラムであればzenlogicのマニュアルページに載っています。https://zenlogic.jp/support/manual/web/cron.htmlすごいね。出来上がったものがこちら仏教らしくこの言葉で話しかけましょう。「クリック推奨画像」にしているのでクリックすることで正解・不正解がわかります。まとめtwitterとPHPの相性は良い。zenlogicのサポートは結構充実している。upLoginユーザーは見つかりませんでした。