目的
所属しているゲームコミュニティの宣伝用ツイッターアカウントへdiscordbotのコマンドを使って投稿したい
環境
$ python --version Python 3.6.6 $ pip list Package Version ------------- ------- aiohttp 1.0.5 async-timeout 3.0.0 chardet 3.0.4 discord.py 0.16.12 multidict 4.4.2 pip 10.0.1 setuptools 39.0.1 twitter 1.18.0 websockets 3.4
アカウント取得&APIキー発行
ツイッターの方は全部英語で作成するアプリについて説明する必要がある。最初結構適当な文章書いたら追加で質問が来たので真面目に書くほうがいい。
ソースコード
動作確認
投稿
実際に投稿されたツイート
アニクリ!
— アニクリの代弁者 (@aniclibot) October 1, 2018
ハマったこと
bot.command
の引数が通常だとコマンド引数(ツイートしたい文字列)のみだが、discordのテキストチャンネル側に誰がツイートしたかのログを残したかったので、コマンドを実行したユーザIDを確認したかった。
そこで、pass_context=True
を設定することでオリジナルのメッセージを引数として利用することができる。
Frequently Asked Questions — discord.py 0.16.12 documentation
ちなみにずっと古い方のdiscord.pyのドキュメントを見ていて1時間以上ハマった。