すごい広島 #4 で Twitter API の勉強


すごい広島とは 広島のエンジニアやウェブデザイナーが毎週集まって、 もくもくしたり Hackしたり 読書したり する場所です。
ということで、今週は第4回でした。
NVDA の作業をしようかと思ったのですが、たまたま Twitter API 1.0 が今日終了したということで、あちこちでソフトやサービスが動かなくなったという話を聞き、久しぶりに Twitter API の勉強をしました。
よく考えたら、Twitter API はなんどか使ったことがあるのでした。最初に勉強したのは Twitter4r という Ruby のライブラリでした。。
まずは Apigee で Twitter API 1.1 を叩いてみます。OAuth 認証もやってくれて、JSON で情報が返ってきます。簡単ですね。。簡単すぎてつまらない。。
The Qube というスクリーンリーダー対応の Twitter クライアントは Python で書かれていて Tweepy というライブラリに依存しているという話。
なにかライブラリを試してみようか、ということで、調べたら Tweepy の他に Python Twitter というものが見つかりました。
せっかくなので使ってみました
が、タイムラインが取れて、ツイートができることは確認できたものの、GetFollowers などを使うと

twitter.TwitterError: [{u’message’: u’Rate limit exceeded’, u’code’: 88}]

になってしまい、うまくいかず。。
そもそも Twitter で何をしたいのか深く考えてなかったので、久しぶりに音声対話アプリを書いてみました。
書いたのはこんなコードです。
Windows 8 でこのプログラムを起動して、「今日はWindowsで音声認識を使うプログラムを作りました」「コンピューターいまのをツイートして」といえば、Windows 内蔵の日本語音声認識と日本語音声合成で、下記のようにツイートができました。


「コンピューターツイッターを読んで」といえばタイムラインを読んでくれます。
Python でこういうライブラリを使うと HTTP も JSON も文字コード変換もほとんどお任せでいいから便利ですね。。
静かな「もくもく作業の場」でひとりコンピューターに向かってしゃべり続けてしまい、すみませんでした。今度から突発的に音声認識アプリが書きたくなったときに備えて、常にヘッドセットを持参しようと思います。。
最近は Mac OS X や Chrome ブラウザにも音声認識機能がついてたりしますが、Windows 8 はクラウドでなくコンピューターの中で音声認識と音声合成をしています。でも作ったものが Twitter アプリだから、やっぱりネットワークにつながってなくてはならないわけで、違いをアピールしにくいです。。
今日は使いませんでしたが dragonfly – Python-based speech recognition framework – Google Project Hosting は SAPI と Dragon の音声認識APIラッパーらしいです。アプリケーションごとの音声コマンドのライブラリが充実している印象ですが、フレームワークがここまでやるとローカライズが大変かも。。
ところで、今週土曜日にはNVDA広島勉強会を行います。よろしくお願いします。
追記(6月14日)
Twitter クライアントの Qube は無事に API 1.1 対応したそうです:

,