【コラボ企画】Raspberry Pi 愛に溢れるラズパイダのご訪問者に向けて新型Raspberry Pi 4Bのセット品をプレゼント!——クリックして特集記事へ

Raspbian LiteからTwitterのAPIを利用してツイートさせる基本編

スポンサーリンク
rpi-tweet-title 作ってみた!
この記事は約7分で読めます。

TwitterのAPIを利用してRaspbianからPythonプログラムを使ってツイートさせたくRaspbian Buster Liteでテストしてみました。ネットの皆さんの多くがTwitterでbot化させているアレと同様です。

ただ、botというより、プログラムから結果を表示させるため、ディスプレイやLCD、音や光といった手段の代わりにツイートさせるものです。

しかし、ハマりました。Twitterのデベロッパー登録ではなく、pipのインストールです。

Twitterへの投稿とそのセットアップについてご紹介します。

スポンサーリンク
Raspberry Pi 4Bスターターセット
スポンサーリンク
Raspberry Pi 4Bスターターセット

Twitterのデベロッパー登録

Twitterのデベロッパー登録先(Twitter Application Management

この登録は面倒なものの、Tweeterのアカウントがあればデベロッパー登録は可能です。

APP作成前の注意点は大きく2つ。

  • Tweeterアカウントは携帯電話番号を入力してあり電話認証を済ませてあること
  • Keys and tokensを発行していること

TwitterのAPIを使用するには、デベロッパーとなりアプリを作るという考え方です。

アプリといっても何もインターフェイスは無くて構わず、今回のように概ね投稿させるだけならKeys and tokensを取得するために登録するようなものです。

アプリを作成する

先ずはTwitterのAPIを使えるようにするため、アプリを作成することから始めます。

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

ちなみにこの画面は以下のデベロッパートップページからアカウント名のプルダウンメニューで選べます。

https://developer.twitter.com/en.html

このアプリの中身をウィザードに従って入力していきます。

色々と入力欄がありますが、PythonのプログラムからTweetするだけのアプリですので、必須の項目だけ入力しアプリを作成します。

下図を参考にしてください。

Tweeterアプリの入力例

必須の項目

  • 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のパッケージマネージャと連携しないという注意事項があります。

そうはいっても仕方ないので、こちらの方法でインストールしてみます。

Installation — pip 19.3 documentation

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=''

トークンはジェネレート(発行)しないとなりません。

Keys and tokens

このタブの中に発行していない時は、ジェネレートボタンがあります。押すだけです。

メインプログラムを実行するだけ

キー&ドークンを設定すれば、あとは中にあるmain.pyを実行するだけで自分のTwitterへ投稿できます。

非常に簡単で分かり易いプログラムをありがとうございます。こちらのサイトです。

するとこのように投稿が完了しました。

APIの利用でツイートする制限があります。

ツイート: 1日あたり2、400件が上限です。1日あたりのツイート数のリミットは、さらに30分単位のリミットに分けられています。リツイートもツイートとしてカウントされます。

https://help.twitter.com/ja/rules-and-policies/twitter-limits#

最後に

このメインのプログラムは非常にシンプルです。これを利用させてもらい、ある条件下でつぶやきさせたいと思います。

私はここ何年かで辞めてしまった趣味の一つに熱帯魚飼育があります。かなり長い間に渡り飼育していました。色々と忙しくなって辞めたのですけど、ラズパイで水槽を管理している事例をみて、思い出しやってみたいと思っています。

そうは言っても本格的に再開する気はないので、小さな仕組みで楽しみたいと思います。

パイレッド
パイレッド

自分でも忘れていましたけど、Mac歴やラズパイ歴、スマホ歴より熱帯魚飼育の方が断然長かった!

魚に餌を与える仕組みもネットで見付けましたので、そちらも試して組み上げたいと思ってます。

こちらの仕組みも利用します。

暑くなったきたのでラズパイで温度を測る。ZeroWHとDHT11温度センサー
Raspberry Pi Zero WHで温度センサーの値を取得してみます。以前に電子工作で使えるパーツがセットになっ...

コメント