Raspberry Piからツイートする方法を調べるため、Pythonライブラリのtweepyを試してみます。
1.Twitterのアカウントの準備とアプリケーション登録
アカウントの登録については、省略。準備したアカウントに対してこちらのサイトを参考にして、アプリケーション登録をしました。他にも参考になるサイトはたくさんあるようです。
登録後、自分の登録アプリケーション一覧は https://dev.twitter.com/apps/ で確認、変更する。
この中で、登録アプリケーションを開いて、「Setting」の中のApplication Typeを「Read and Write」にしてから、「Recreate my access token」を押して、Access level が「Read and write」の状態でAccess tokenとAccess token secretが表示されていることを確認します。
2.tweepyライブラリのインストール
インストール手順は以下の通り
$ sudo apt-get install python-setuptools パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが新たにインストールされます: python-setuptools アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 37 個。 217 kB のアーカイブを取得する必要があります。 この操作後に追加で 1,077 kB のディスク容量が消費されます。 取得:1 http://archive.ubuntu.com/ubuntu/ natty/main python-setuptools all 0.6.15-1ubuntu1 [217 kB] 217 kB を 3秒 で取得しました (69.9 kB/s) 未選択パッケージ python-setuptools を選択しています。 (データベースを読み込んでいます ... 現在 173551 個のファイルとディレクトリがインストールされています。) (.../python-setuptools_0.6.15-1ubuntu1_all.deb から) python-setuptools を展開しています... python-setuptools (0.6.15-1ubuntu1) を設定しています ... $ sudo easy_install tweepy Searching for tweepy Reading http://pypi.python.org/simple/tweepy/ Reading http://github.com/joshthecoder/tweepy Reading http://github.com/tweepy/tweepy Best match: tweepy 1.11 Downloading http://pypi.python.org/packages/source/t/tweepy/tweepy-1.11.tar.gz#md5=6d8d760f41e2473e20077279e65e17a0 Processing tweepy-1.11.tar.gz Running tweepy-1.11/setup.py -q bdist_egg --dist-dir /tmp/easy_install-SzL6DK/tweepy-1.11/egg-dist-tmp-iXWi9s Adding tweepy 1.11 to easy-install.pth file Installed /usr/local/lib/python2.7/dist-packages/tweepy-1.11-py2.7.egg Processing dependencies for tweepy Finished processing dependencies for tweepy $ python Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import tweepy >>> $
3.アクセスに必要な各種トークンを入手する
TwitterのDevelopperサイトを開いて、ログイン後、 My applicationから「OAuth tool」タブを開いて、CONSUMER_KEY、CONSUMER_SECRET、ACCESS_KEY、ACCESS_SECRETを入手する。
4.投稿テスト
投稿テストしてみる。スクリプトはこちらのサイトそのまんま。詳しい説明はそちらを。
スクリプト内の CONSUMER_KEY、CONSUMER_SECRET、ACCESS_KEY、ACCESS_SECRET は上記3で入手したものをコピペする。
#!/usr/bin/env python import sys import tweepy CONSUMER_KEY = 'xxxxxxxxxxxxxxxxxxxxxx' CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ACCESS_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ACCESS_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' mypost = sys.stdin.readline().strip() if 0==len(mypost): exit() auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) api = tweepy.API(auth) api.update_status(mypost)
これでシェルからコマンドラインから実行してみると・・・
$ ./twit.py これは投稿テストです $
これで無事に投稿できました!!
5.Raspberry Piから投稿してみる
まったく同じ手順で tweepy を Raspberry Pi にインストールした後、 このtwit.pyファイルも Raspberry Pi にコピーしてコマンドラインから投稿テストを行ったところ、無事に投稿できました!