TwitterのAPIを利用してRaspbianからPythonプログラムを使ってツイートさせたくRaspbian Buster Liteでテストしてみました。ネットの皆さんの多くがTwitterでbot化させているアレと同様です。
ただ、botというより、プログラムから結果を表示させるため、ディスプレイやLCD、音や光といった手段の代わりにツイートさせるものです。
しかし、ハマりました。Twitterのデベロッパー登録ではなく、pipのインストールです。
Twitterへの投稿とそのセットアップについてご紹介します。
Twitterのデベロッパー登録
Twitterのデベロッパー登録先(Twitter Application Management)
この登録は面倒なものの、Tweeterのアカウントがあればデベロッパー登録は可能です。
APP作成前の注意点は大きく2つ。
- Tweeterアカウントは携帯電話番号を入力してあり電話認証を済ませてあること
- Keys and tokensを発行していること
TwitterのAPIを使用するには、デベロッパーとなりアプリを作るという考え方です。
アプリといっても何もインターフェイスは無くて構わず、今回のように概ね投稿させるだけならKeys and tokensを取得するために登録するようなものです。
アプリを作成する
先ずはTwitterのAPIを使えるようにするため、アプリを作成することから始めます。

矢印のCreate an appボタンから作成します。※画面には既に作成したアプリが表示されます。

ちなみにこの画面は以下のデベロッパートップページからアカウント名のプルダウンメニューで選べます。
このアプリの中身をウィザードに従って入力していきます。
色々と入力欄がありますが、PythonのプログラムからTweetするだけのアプリですので、必須の項目だけ入力しアプリを作成します。
下図を参考にしてください。

必須の項目
- App Name(アプリの名前)
- description(説明)
- Web site URL(ホームページURL)
- App Uage(アプリの使い方)
文章で説明する入力欄は最低文字数が決まっているので、短いと登録できません。(200文字以上など)日本語ではなく英語で記述しないとなりません。翻訳サイトを利用しましょう。
— ちなみに、画像のアプリの名前「KingyoPi」は金魚の水槽の温度をツイートさせるために名付けました。しかし、まだ水槽も金魚も居ませんw
TweetするためのPythonプログラム
ネットで探すと、とっても良いプログラムを見付けました。
gitHubに公開されています。正にドンピシャで助かります。
https://github.com/yusukeito58/twitter-bot
この後クローンコピーします。
その前に必要なアプリケーションをインストールするのにpipで行う際、Raspbian Liteにはpipがインストールされておらず、Pythonも2.X系なのか、そもそもpipがインストールできないトラブルに見舞われました・・・。
以下がインストールできない・・・。
pip install twitter
pip install python-dotenv
pipのインストール
pipはapt-getではなくインストールスクリプトからインストールする方法があるものの、OSのパッケージマネージャと連携しないという注意事項があります。
そうはいっても仕方ないので、こちらの方法でインストールしてみます。
get-pip.pyをダウンロードする
wget https://bootstrap.pypa.io/get-pip.py
これをpython2.X系として実行します。
sudo python get-pip.py
Successfully installed pip-19.2.1 setuptools-41.0.1 wheel-0.33.4
一応、成功です。
Lite版ってPython3が入っていないのだっけ?? 別途、Python3をインストールするのもアリかと思いますが、今回は2.X系で進めます。
Twitterとdotenvのインストール
これでpipが入ったので、インストールします。が、これも--userオプションを付けないとエラーでした。(この辺がよく分かりません)sudo付ければ良かったのか??
pip install twitter --user
pip install python-dotenv --user
Successfully installed twitter-1.18.0
Successfully installed python-dotenv-0.10.3 typing-3.7.4Successfully installed twitter-1.18.0
このようにこちらも成功です。
git cloneでプログラムをダウンロードする
先程のとってもドンピシャなプログラムをダウンロードします。
git clone https://github.com/yusukeito58/twitter-bot.git
このダウンロードしたものはtwitter-botフォルダにまとめて入っています。lsコマンド覗くと中に4つファイルが見えます。
- config.py
- LICENSE
- main.py
- README.md
ただ、ドットで始まるファイルは見えません。全部で6つあることになります。
- .env.sample
- .gitignore
Twitterにアクセスするシークレットキーなどを設定
ここからはAPIを利用するためのKEYを設定すればOKです。
設定するファイルは.env.sampleです。ただ、sampleは取り除く必要があります。メインのプログラムで呼び出しているのは「.env」だからです。
cp .env.sample .env
中身はKeys and tokensを上から4つ順番にコピペしてください。
TW_CONSUMER_KEY='' TW_CONSUMER_SECRET='' TW_TOKEN='' TW_TOKEN_SECRET=''
トークンはジェネレート(発行)しないとなりません。

このタブの中に発行していない時は、ジェネレートボタンがあります。押すだけです。
メインプログラムを実行するだけ
キー&ドークンを設定すれば、あとは中にあるmain.pyを実行するだけで自分のTwitterへ投稿できます。
するとこのように投稿が完了しました。
すみません。これはテスト投稿ですm(_ _)m
(@raspidacom) July 24, 2019
APIの利用でツイートする制限があります。
ツイート: 1日あたり2、400件が上限です。1日あたりのツイート数のリミットは、さらに30分単位のリミットに分けられています。リツイートもツイートとしてカウントされます。
https://help.twitter.com/ja/rules-and-policies/twitter-limits#
このメインのプログラムは非常にシンプルです。これを利用させてもらい、ある条件下でつぶやきさせたいと思います。
2021年1月、SNSの利用はやめました。
Twitterのフォロワー数900弱でした。ありがとうございました。