Re^2: Twitter oAuth Implementation for Titanium Mobile

バグがあったので修正しました。 mogya/oauth-adapter - GitHub

@mogya While executing Timer, received script error. 'Result of expression 'URL' [undefined] is not an object. at oauth.js (line 453)'でした!Sat Jan 15 12:55:06 via web

一番最初、アプリケーションを起動してoAuth認証を通した直後にAPIを呼び出すと(=僕のブログコード通りに書くとw)、上記エラーになる不具合を修正しました。

ただ、またもや互換性が保てなくて、oAuthAdapter.send()の戻り値を使うのが無理になりました。申し訳ない。
sendから戻ってきたからといってAPI呼び出しが完了して戻り値が入っていることは保証できないので、その代わりにonSuccessコールバックを利用してください。 初期化部分も含めたコード全体は、readmeで見ることができます。

How to start

  • 新しくプロジェクトを作る
  • Resources/libディレクトリを作って、oAuthAdapter.jsと、oauth.js,sha1.jsを入れる
  • readmeのコードをapp.jsにべったり上書きする
  • 'YOUR CONSUMER SECRET','YOUR CONSUMER KEY',部分を自分のキーに置き換える。SECRETが先であることに注意
  • Launchすると、oAuth認証が立ち上がり、その後勝手につぶやき、タイムラインをデバッグコンソールに出力します。

解説

 Davidの書いたoAuthAdapterには、sendを呼び出した時点でoAuth認証が完了していなかったら、呼出をいったん保留して、認証後に再呼び出ししてくれるという機能が付いています。
 上記エラーは、この再呼出部分のコードを修正するのを忘れていたことが原因だったので、これは修正しました。

 ところが、そういう非同期の呼び出しが起こる以上、関数の戻り値にAPIの戻り値が入っていることは保証できなくなりました。(というか、最初から保証できなかったのですけど、僕が気づいていませんでした。)
 あと、全然別件なのですけど、Davidの書いたoAuthAdapterでは、sendの引数にtitleとpSuccessMessageを渡して、API呼び出しが成功すると、かならずポップアップが出る仕様になっています。update_statusならともかく、タイムラインを更新したり、バックグラウンドでユーザー情報を取得したりする場合、この仕様はちょっとありえません。

 二つの問題をバッサリ片付けるアイデアとして、titleとpSuccessMessageの使用を廃止して、代わりにonSuccessコールバックを採用することにしました。onSuccessコールバック関数の中でダイアログを出せば、従来と同じ挙動をすることができます。
カテゴリ:

トラックバック(0)

このブログ記事を参照しているブログ一覧: Re^2: Twitter oAuth Implementation for Titanium Mobile

このブログ記事に対するトラックバックURL: http://mogya.com/mt/mt-tb.cgi/1115

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、 もぎゃが 2011年1月18日 16:51に書いたブログ記事です。

ひとつ前のブログ記事は「 iPhoneアプリを作る10の方法 」です。

次のブログ記事は「 iPhoneアプリ作成環境の比較 」です。

最近のコンテンツは インデックスページ で見られます。過去に書かれたものは アーカイブのページ で見られます。

Powered by
Movable Type