2010年08月18日
GAE上にてsinatra+OAuthでtwitterを扱えるようになったので、入力したtweetを、逆順にしてpostするwebアプリケーション「Right to Left twitter」を作った。
とりあえず動いている、というレベルなので、とてもじゃないがソースは晒すことはできない。もっとエレガントに書けるようになりたい。
「こんにちは」と入れると「はちにんこ」と変換してpostされる。
回文モードもあり、「しんぶんし」であれば「しんぶ」と入力することで、「しんぶんし」を作ってくれる。
真ん中の文字を、重ねるオプションもあり、「しんぶ」と入力して重複させると「しんぶぶんし」となる。
いや、だから何の役に立つってわけじゃないけどね・・・。
http://rtl-maarui.appspot.com/- ブログネタ:
- Twitter(ツイッター)について に参加中!
GAE上のjrubyプログラムでクライアントからの値を取れるようになったので、次はいよいよ他のサービスとの通信だ。 しかし、他のサービスとの通信をするには、認証という大きな壁がある。
一番簡単そうなtwitterで遊んでみることにする。
twitterは、今月(2010-08)にbasic認証を終了するとアナウンスしているので、oauthを使う。 oauthのお勉強はこちらなど。
まずは、環境の確認の意味で、こちらのプログラムを動かしてみる。
しかし、なかなか素直に動かない。
試行錯誤すること3日。
あちこちを参考にするが、つまづきまくる。
結果としては、原因が2つあったようだ。
一つは、appengine gemでjrubyへライブラリを組み込むとき、appcfg.rb bundleをするが、gemの依存関係の処理がうまくいっていないようだ。 依存gemをGemfilesに書いてあげることで、gemのloadはクリアできた。
二つ目の原因は、twitter gemとoauth gemの2つをrequireしていたのだが、twitter gemにoauthのクラスが組み込まれており、oauth gemと競合していた。require twitterのみにして解決した。
あと、GAEの特徴として、Net::HTTPが素のままでは使えないという問題もあるが、これもgoogle-appengineが解決してくれているので、今や意識しなくてよいようだ。
動作環境は以下。
|
Gemfilesとrequireリストは、以下になる。
|
$ cat sample.tw.rb |
- ブログネタ:
- Rubyプログラミング に参加中!