OpenIDとOAuthは似た技術であるが、OAuthはサイトのAPIアクセスの認可を行うための仕様である。
参考:@IT APIアクセス権を委譲するプロトコル、OAuthを知る
twitterのOAuthを利用するときは、twitter developersのサイトで必要情報を記入登録して、Consumer key 及び Consumer secret を取得する必要がある。
twitter developersのアプリケーション登録では、ほとんどの項目を適当に入力すれば登録可能だ。登録してキーが発行されてからでも内容の変更は可能である。ただGoogleAppEngineから利用するときは、アプリケーションの種類を「ブラウザアプリケーション」にしておく必要がある。
twitter developers アプリケーションの登録申請
Kayフレームワークの kay.ext.gaema モジュールを利用すれば、簡単な設定で twitter OAuth を利用できる。gaemaについては別記事に譲るとして、twitter OAuth で発生したエラーについて説明する。
twitter OAuthを利用したアプリケーションへのアクセスで、次のエラーが出ることがある。
Internal Server Errorエラー発生時のURL→ http://アプリURL/_ah/gaema/login/twitter
Could not get request token
原因調査は分かり辛いのだが、GoogleAppEngineの全てのログを見ると、
Desktop applications only support the oauth_callback value 'oob'というエラーが表示されている。
これについてWEBで検索すると、speg03さんのサイトに同様の問題が書いてありました。
speg03の日記 TwitterのOAuthでCallbackさせるときの注意点
つまりtwitter developersの登録でブラウザアプリケーションを選択したら、必ずコールバックURL欄にに何かを記入する必要がある。コールバックURL欄に何も記入しないとデスクトップアプリケーションとして扱われて、PINコード入力を要求される。PINコード入力要求には、当然答えることができないのでエラーが発生するとのことである。
twitter developers登録では、「ブラウザアプリケーション」を選択したら「コールバックURL」に必ず何かを登録する必要がある、というのが今回の記事での注意点。