ご存じのようにTitaniumはJSです。JSでOAuth認証ってどうやるの?と思ってましたが、いつも参考にさせていただいているTitanium Mobileで作る! iPhone/Androidアプリ「第4回 TitaniumでTwitterクライアント──OAuthを使ったAPI呼び出し」で取り上げられていますので、これを参考にすれば簡単にできるんじゃねぇと思っていたのですが、「エラー」で動きませんでした。
というわけでいつものように頼れるGoogle先生で調べました。
「OAuth認証してツイートしてタイムラインを取得できるiPhoneアプリを10分で」
すげーっす。動画で分かり易い。そして、ライブラリまで作られているそうなので、拝借させていただきました。
mogya / tm_twitter_api
https://github.com/mogya/tm_twitter_api
しかし、エラーが出ます。
さらにググりました。
「Titanium MobileでTwitterOAuth時のエラーと解決方法」
先の動画とこちらのページの解説で理解できました。
OAuth認証で発行された「PINコード」をスクレイピングして自動入力させている処理が、認証画面が変更になったのでエラーになっていたと。(gihyo.jpさんのコードも同じエラーだったようで…)
mogyaさんのtm_twitter_apiもoauth_adapter.jsを使っているので、上記サイトを参考に該当箇所を修正しました。
追記:修正版がコミットされたようです(2011/06/04)
動いた!ヤター
ふぅ、しかし認証画面が変更される度に修正が必要になるかもですねぇ。
実際のアプリでは以下のような感じになります。
ツイート画面に遷移すると、初回に認証が求められます |
IDとパスワードを入力して[アプリを認証]ボタンをタップ | PINコードが表示されます。数秒後自動で消えます(この時裏で処理してる訳ですね) |
認証完了しました | 認証したアカウントのアイコンも表示するようにしました |
※初回の認証を呼ぶタイミングは実装次第です。アプリの流れ的に今回は画面に遷移した初回のタイミングにしています。
※アイコンの表示は認証とは別処理です。
※iPhoneでしか試していませんのでAndroidでの動作は不明です。
そのうちTwitter以外のサービスでもOAuth認証を試してみたいと思います。
※サンプルコードをお探しの方には下記の書籍をおすすめします
0 件のコメント:
コメントを投稿