ラズベリーパイ奮闘記(Twitter連携編 序章)

前回のあらすじ

ウヒョンなことからラズベリーパイを手に入れ、無線LANの設定までしてみた(GUIで)。

何するかを考える

折角ラズパイがあるので自宅の便利化でもしようかと。

外出先から命令してラズパイ様に処理していただく。

でも公開サーバにはしたくない(ポート開けるのがちょっとアレ)。

てなわけでTwitter APIを介しての処理呼び出しにする。

Twitter API使ったエージェントは以前作ったことあるのでヨユーっしょwww




...と思っていたが色々苦戦した。

苦戦その1:Twitter Developersの登録に電話番号が必須

Twitter DevelopersでAPIの登録をしてConsumer Keyとかを生成するのだが、いつの間にやらProfileに電話番号が登録されていることが必須になっていた。

さらに言語を日本語にしている状態ではうまく電話番号登録ができないという不具合があるそうで、言語を英語にしてログインしなおしてからでないと登録できない。

ついったあぁ。。。

苦戦その2:PythonTwitterライブラリ tweepy がインストールできない

pip、easy_installのバージョンがアレだったそうでtweepyのインストール時にエラーが出る。試行錯誤したらさらにバージョンがアレになってアレ。

最終的には以下のコマンドだけでよかったような気がする。

$ sudo easy_instal --upgrade pip

$ sudo pip install tweepy

ちなみにPythonは2.6.8が動いている模様。いいのかは知らん。

苦戦その3:tweepyで何もしてないのにエラー出たんですけどー

test.pyという名前でファイルを作る

import tweepy                                                               

consumer_key = "コンシューマーキー"
consumer_secret = "コンシューマーシークレット"
access_key = "アクセスキー"
access_secret = "アクセスシークレット"
                                                  
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)                                           
auth.set_access_token(access_key, access_secret)                                                                                           
api = tweepy.API(auth_handler=auth)
api.update_status(status="Hello World!")

実行してみるとなんかエラーが出た。

InsecurePlatformWarning: A true SSLContext object is not available.

どうやらPythonのバージョンがダメぽい。あれ?さっき知らんって...

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2

優先度1は2.6で使用済みっぽいので2にした。よーわからん。

$ sudo pip install tweepy

2.6でtweepy入れても2.7ではインストールされていないみたい。よーわからん。てかちゃんと勉強してからやれ。

で、再度実行してみたけど同じエラー。

Pythonのバージョンは2.7.9以上でないといけないらしい。2.7.3だったわフヒヒwww

もう一つ、pipのrequestを2.5.3に落とす方法があるらしい。

# pip list | grep requests
  requests (2.7.0)
  requests-oauthlib (0.5.0)
# pip install requests==2.5.3
# pip list | grep requests
  requests (2.5.3)
  requests-oauthlib (0.5.0)

これでひとまずツイートはできた。
tweepyが使えてtwitterとの連携のスタートラインに立てますた。

NKT...

今日はここまで。ラズパイ関係ないやん!!!!