Twitter
bot
仏教
Zenlogic

あの鳥に真言を読ませてみる。~zenlogicでtwitterのbotを作ってみた~

イントロダクション

私は2年ほど前から趣味でアナログゲーム作りをしています。

大した作品を世に放ったたわけでもないですが、今日は大枚はたいて東京まで赴きこれに出てます。

んでせっかく出るならと、新作を作りました。

DOmYwz5X4AANra4.jpg

名前のとおり「真言を読み上げて該当する仏画をとる」という出落ちみたいなゲームです。

ただ、5年ほど前には仏教なんぞに全く興味がなかった私が、

「聖☆おにいさん」というまんがのオチを理解するために宗教の勉強し始め

こんなゲームを作るぐらいにハマるとは感慨深いものがあります。

ま ハマると言っても宗教「史」にハマっているだけで、特定の神様を信仰したり、出家したいわけじゃありません。

ほんの「ベンチャーのノリで『宗教立ち上げない?』と誘われたら迷う」程度のハマり具合です。

閑話休題

ゲーム作成は基本一人で企画、制作、営業、販売を行っているので、

さながら会社経営をしているようでなかなか面白いです。

ただ実績のない私とって「広告宣伝活動」は苦労するものです。

というわけで 今日はtwitterを使って真言カルタのRP用bot をやってみたいと思います。

ボットの仕様

ダラダラ真言をつぶやいてもいいのですが、ウザくなりそうなので、返信型が良いでしょう

botにはなしかけると、数枚の仏画とともに真言をつぶやいてくるので、該当する仏様を当てる

うん、カルタっぽい!こんな仕様でええでしょう

フローを考える

  1. DBから前回の実行時間を取得
  2. 1で取得した時間以降でbotへのつぶやきを取得
  3. DBから真言と画像をランダムにピックアップ
  4. 返信ツイートをする
  5. 実行時間を退避
  6. 1分おきに繰り返す

とりあえずこんな感じ

実行環境を考える

ラズパイさんを使ってもいいのですが、24-365動いてほしいので

ファーストサーバのサービスでもあるZenlogicに働いていただきましょう。

データベースを準備する

とりあえずDBがいるのでMySQL5.1を設定。

db.jpg

phpMyAdminというDB管理ツールも簡単インストールから入れておきます。

kantan.png

ボタン押すだけだから簡単だね。

適当に真言を入れるテーブル作って入れてます。

途中データの修正できないトラブルがあったので客を装ってクレームいれてやろうとおもいましたが、ちゃんとFAQが用意されていました。

ごめんなさい。

https://faq.zenlogic.jp/faqs/FAQ01203

PHPを準備する

twitterへの命令はPHPが相性良さそうなので、とりあえず最新の7.1を使えるよう設定します。

php.png

ただしあまり下位互換がされていないので、ググったサンプルをコピペというわけには行かないようです。

特に
データベース・アクセス系のコマンドmysql_connectは使えないのでmysqli_connectを使うようにしましょう

twitterの準備

アカウントを取って、APIを使えるようにします。

この辺の記事を参考にさせていただきました
https://weblabo.oscasierra.net/php-twitteroauth/

ハマったところは「TwitterOAuth」の作者様がアブラハム氏だったので

すわっ!イサクのお父さん!?」と思いながら数十分ほどwikipediaを読んでしまったぐらいです。

ツイートを取得する

この辺を参照させていただきました。
https://qiita.com/tsumugu/items/e23481626cb6309a249c

https://syncer.jp/Web/API/Twitter/REST_API/GET/statuses/mentions_timeline/

またsince_idを使うと、そのid以降のツイートのみを検索できるようなのでフローを修正

  1. DBから前回のidを取得
  2. 1で取得したid以降でbotへのつぶやきを取得
  3. DBから真言と画像をランダムにピックアップ
  4. 返信ツイートをする
  5. 2で取得したツイートのidを退避
  6. 1分おきに繰り返す

ツイートする

この辺を参照させていただきました。
https://qiita.com/noir/items/b631ed274770eef26445

案外簡単です。

あとは適当にプログラムします。

cronの設定

受信は1分おきにしたいのでcronを使いますが、

Webから起動したら動いたのに、Cronにしたら動いてくれません

でも大丈夫この程度のプログラムであればzenlogicのマニュアルページに載っています。

https://zenlogic.jp/support/manual/web/cron.html

すごいね。

出来上がったものがこちら

仏教らしくこの言葉で話しかけましょう。

そもさん @singon_karuta
名称未設定 1.png

お、返ってきた

オン マリシエイ ソワカ は 摩利支天様ですね。

名称未設定 1.png

「クリック推奨画像」にしているのでクリックすることで正解・不正解がわかります。(さくらっこ商会は私の屋号)

うん まんぞく。

まとめ

  • twitterとPHPの相性は良い。
  • zenlogicのサポートは結構充実している。
  • こんなんでPRになるかの答えは今日の売上次第
  • 「仏教」タグはありがたく使わせていただいた
  • 良い子のみんなは会社で「政治・宗教・野球の話」はやめようね

まとめ2

しこたま売れて完売じゃい!
image.png