ばーろぐわにる

SIerからWEB系?インフラエンジニアにジョブチェンジした見習いの備忘録。投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。

discordbotを使ってtwitterに投稿する

目的

所属しているゲームコミュニティの宣伝用ツイッターアカウントへ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キー発行

qiita.com

www.noobs.tokyo

ツイッターの方は全部英語で作成するアプリについて説明する必要がある。最初結構適当な文章書いたら追加で質問が来たので真面目に書くほうがいい。

ソースコード

github.com

動作確認

投稿

f:id:oneal-desu:20181001210233p:plain

実際に投稿されたツイート

ハマったこと

bot.command の引数が通常だとコマンド引数(ツイートしたい文字列)のみだが、discordのテキストチャンネル側に誰がツイートしたかのログを残したかったので、コマンドを実行したユーザIDを確認したかった。

そこで、pass_context=True を設定することでオリジナルのメッセージを引数として利用することができる。 Frequently Asked Questions — discord.py 0.16.12 documentation

ちなみにずっと古い方のdiscord.pyのドキュメントを見ていて1時間以上ハマった。

参考

qiita.com