お天気たしんbotの開発を振り返る

tech
この記事は約4分で読めます。

こんばんは!今年も気がつけば12月になりました。世界的に見れば、コロナが主役になった1年間だったのかなと思います。個人的には、研究室に配属されて自宅で研究の日々だったので、コロナの影響は限定的でした。今年の新入生は大変だと思いますけど、サークルに入るならオリエンテーリングおすすめですよ(急に宣伝(笑))。

さて、昨年から始まった広島大学ITエンジニアアドベントカレンダーですが、昨年は、「情報系学生向け就活サイトまとめ」と「プログラミングやAIについて学べるサイトまとめ」という記事を書きました。今年は、自作(?)したTwitterのbotについて書きたいと思います。

というわけで、この記事は、広島大学ITエンジニア Advent Calendar 2020 の12月12日の記事です。

お天気たしんbotの機能

お天気たしんbotの現在の機能は、大きく3つに分けられます。

ランダムツイート

  1. 友人きたしんが過去に語ったことば

更新情報ツイート

  1. 広島大学学生向け情報サイトmomijiの一部の更新情報
  2. 広島大学HP「重要なお知らせ」の更新情報
  3. 広大図書館「利用者のみなさまへ」の更新情報

自動実行ツイート

  1. 広島県東広島市の雨予報

今回は、技術的な側面から、利用しているサービスについて書いていきたいと思います。すべて無料のサービスを利用しています。リリースノートはコチラのページにあります。

なぜ「お天気たしんbot」?

ちなみに、なぜ「お天気たしんbot」なのかというと、最初は「きたしん(人名)」の発言をbotがつぶやくだけのシンプルなものだったんです。そのあと、天気予報の自動ツイート機能を追加しました。そのタイミングで「お天気」+「きたしんbot」で「お天気たしんbot」と改名し、現在に至りました。

twittbot – ボット生成サービス

自動ツイートには、「twittbot」というサービスを使っています。無料で最大700ツイートを登録でき、指定した時間間隔で自動ツイートしてくれます。他にも、自動フォロー返しや自動返信など、様々な機能があります。自動返信機能は、対象ツイートを正規表現で指定し、そのツイートに対する返信を予め作成しておくと、該当するツイートに対して自動で返信する機能です。ほとんどの機能が無料で利用できます。(プレミアム・バージョンに登録したことがないので、課金するとどんないいことがあるのか分かりません)

twittbotの「詳細設定」画面。きめ細かい設定が可能。

Feed43 : Convert web pages into professionally looking RSS feeds

更新情報のツイートは、①対象サイトのRSSを作成し、②Twitter管理ツールでRSSを自動ツイート登録、という2つのステップで作成しています。「Feed43」は無料でRSSを作成できるサービスです。

Feed43のトップページ

Feed43の詳細な利用方法は省きます(検索すれば出てきます)が、大まかにいうと、①URLを指定、②RSSで取得したい情報を正規表現で指定、③出力フォーマットの指定、という流れです。

SocialDog – スマートで効率的な Twitter アカウント運用ツール

SocialDogは有名なTwitter分析ツールですが、RSSの自動投稿機能も備えています。無料枠では、RSSは3つまで登録でき、最短で1時間おきに更新がないかチェックします(お金を払うと、RSSの登録数を増やしたり、更新頻度を5分おきに設定できるらしいです)。Feed43で作成したRSSのURLを貼り付ければ、あとは自動でツイートしてくれます。

SocialDogのRSS自動投稿管理画面。もちろん無料枠の範囲内で使用している

Social Media Auto Poster and Scheduler – dlvr.it

SocialDogのRSS自動投稿の無料枠は3つまでなので、「dlvr.it」も併用します。これも有名なSNS管理ツールです。無料枠では、RSSは50(?)個まで登録できますが、更新頻度が最短で3時間おきという点と、一日の投稿の上限数が3つという点が難点です。

Heroku

広島県東広島市の雨予報のツイートは、①Webスクレイピングで降水確率を取得、②取得した情報を基にツイート、という2つの操作を記述したコードをHerokuのサーバーに上げて、定期実行しています。簡単なコードを一日に2回実行するのみなので、無料枠の範囲内で実現できています。

おわりに

以上、使っているサービスについてざっくりと説明してみました。

Twitterは便利なツールを駆使することで簡単にbotが作れるので、皆さんも是非遊んでみてください!