「相づちくん」のTwitter Bot化
今週のできごと
週明け一週間は夏休みということになっています。妻の実家のある仙台に行こうと思っていたのですが、コロナの状況から「来ないほうがいい」となりました。ちょうど、妻が腰を痛めたということも重なりまして、家で静かに暮らすことになりそうです。
「相づちくん」のTwitter Bot化
WebアプリとしてHerokuでデプロイした「相づちくん」をTwitter Bot化してみました。手順としてはだいたい、下記の流れで行いました。
Twitterのdeveloper登録とAPIキー、トークンの入手
- こちらの記事「Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ ※2019年8月時点の情報 - Qiitaを参考にして、developer登録を行いました。
- 上記の記事は2019年8月時点と書かれてますが、最初の開発目的を選択する部分以外はほとんど同内容の登録画面でした。
- Webで登録した後、APIの使用目的についての追加質問のメールが来ましたが、記事にかかれているものと同じ内容の質問でした。
- 英語なので多少面倒くさいですが、DeepLを使って機械翻訳して回答することで問題ありませんでした。
- 一点迷ったのは、developer.twitter.comにログインする際のアカウントです。ついつい、普段自分がTwitterを見るために使っているアカウントでログインしそうになりました。しかし、APIを使って投稿する先はBOT用のアカウントにしたいので、急いでTwitter上にアカウントを新規作成し、そのアカウントでdeveloperにログインしました。
メンションされたら相づちを返信するTwitter Botプログラムの作成
- pythonで TwitterのAPIを使う際には、tweepyというコンポーネントを使うことが多いようです。
- tweepyを使用例の記事は多数ありますが、いくつか見ながらコードを書き、疑問点をまた調べるということを繰り返したところ、結局、こちらの記事Tweepyで雑にTwitter botを作ってみた - Qiitaと同じことをやろうとしていることに気づき、この記事のコードを大いに参考にさせてもらいました。
stream.userstream()
-
- この行を次のようなfilter機能を使った記述に改める必要があります
stream.filter(track = ["受信したいツイートに含まれる文字列(キーワードや\ BotのTwitterアカウント名など”])
- 結果として、Botのアカウントにメンションすると、肯定的な相づちを返答してくる、というプログラムができました。
- このバージョンをHerokuにデプロイすることも考えたのですが、もう少し機能を追加してからにしようと考えています。