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