ゴマちゃんフロンティア

アザラシが大好きな山梨県産SEの開発日記です

【開発日記】「アザラシ検定」のTwitterBotを作成しました!

time 2020/03/09

現在公開中の「アザラシ検定 ~アザ検~」のTwitterBot版を作ってみました。
アカウント自体は数年前に作成し、bot用に申請したアプリもあったので、アザラシ検定にコマンドを実装して定期実行させています。

https://twitter.com/azaquiz_bot

1日2回、8時と20時に問題文と選択肢を投稿し、その30分後に答えをリプライで投稿します。

出題範囲はアザラシ検定web版で登録されている問題すべてで、難易度 (初級・中級・上級) もランダムです。
当初はTwitterの投票機能を使おうと考えていましたが、2020年3月現在ではAPIからは投票機能を利用できないようです。
仕方ないので普通にツイートする形にしました。

内部的にはLaravelのコマンドとして実装しています。なのでcronに仕込んだシェルスクリプトからphp artisanで呼び出す感じですね。
Twitterへの投稿は以前作ったランパ台詞botと同様に「TwitterOAuth」を使用しました。
https://twitteroauth.com/

手こずったのはcronでの定期実行です。AWSのLightsailがbitnami環境だからか、crontabに書いても上手く実行されず、あれこれ試行錯誤する羽目に。
詰まったら以下のようなことを疑うとよさそうです。

  • `/etc/crontab`は編集せずに`crontab -e`コマンドを使う
  • `crontab -e`コマンドはsudoで実行する
  • 設定後は`sudo service cron restart`でサービスを再起動
  • OSのタイムゾーンが`Asia/Tokyo`になっているか
  • `/var/log/syslog`にcron実行のログがでているか
  • cronから実行した際に環境変数やパスの設定が想定通りになるか

これまでWebアプリとかSlackアプリとか作ってきましたが、やっぱりTwitterが一番気軽に見れて、フォローするハードルも低いかなーと考えました。
まだ動き始めたばかりですが、(cronが) 定期的に投稿するので、アザラシを気になる方もそうでない方もどうぞ!

down

コメントする



このブログを書いている人

りべるん

りべるん

アザラシが大好きな山梨県産Webエンジニア。2019年3月よりフリーランスSEとして東京で活動中。自称「Web業界のアザラシ」 [詳細]