【仕様紹介】Yahoo!のOAuthでUser Authorization URLにつけるRequest Tokenパラメータはオプションです

OAuthの処理で、End UserをSPにリダイレクトさせてリソースアクセスの認可をなんちゃらするときに、Request Tokenをパラメータとして追加するのが暗黙の了解になってます。
が、仕様 OAuth Core 1.0aで"6.1. Obtaining an Unauthorized Request Token"のあたりにはこう書いてあります。

oauth_token:
OPTIONAL. The Request Token obtained in the previous step.
The Service Provider MAY declare this parameter as REQUIRED,
or accept requests to the User Authorization URL without it,
in which case it will prompt the User to enter it manually.

http://oauth.net/core/1.0a#auth_step2

Yahoo! JAPANのOAuthのUser Authorization URLは https://auth.login.yahoo.co.jp/oauth/v2/request_auth です。
これに直接アクセスするとこんな画面が出てきます。

ここでいう"コード"ってのが、Request Tokenのことです。
Request Tokenを手動で入力させるフローに対応しているということですね。
また、この手動入力を意識してYahoo! JAPANのRequest Tokenの値は短いような気がします。
Access Tokenはめっちゃ長いです。

Request Tokenを手動入力するユースケースを考えてみます。

■ 頭が良くない or なんらかの制限があるクライアントアプリ

まずはよく言われているクライアントアプリからのOAuth利用フロー。

1. クライアントアプリがRequest Tokenを取得(バックエンドの処理)
2. クライアントアプリがブラウザを開いてSPにUserを遷移
3. SP上でログイン→同意画面を表示
4. クライアントアプリに戻る(OAuth Core 1.0 Rev AではOAuth Verifierの入力が必要)

Request Token手動入力のケースは以下になります。

2で立ち上がるブラウザのURLが動的ではなく、静的なURLしかたち上げられないアプリ

こんなのあるのかって話ですが、アプリが静的なページしかたち上げられない場合でも、End UserがRequest Tokenの値を手動で入力するとログイン→同意のフローに進めます。

■ デバイスまたぎ

次に、OAuthの処理がデバイスをまたぐ場合を考えます。

TV上で動作するConsumerアプリがあるとします。(BraviaアプリキャストのOAuth版みたいなイメージ)
TVを見ているUserにSPのURLにアクセスさせるにはどうすればいいでしょうか。

1. TV内臓ブラウザ
2.携帯電話のブラウザ
3. PCのブラウザ

1についてはPC内のアプリからOAuth使って同じPCのブラウザ立ち上げるのと同じでしょう。
2についてはQRコードとかで無理やりパラメータ付きのURLにアクセスさせられますねと。
ただし、利便性から行くと次のような誘導をしないといけません。

imode→メニューリスト→XXX→YYY

こういうのたまに見かけますが、これってアクセスする先は静的なページですよね。
その静的なページからSPのUser Authorization URLにリダイレクトさせられるのであれば、TV画面上にRequestToken表示させとくことでそのあとのOAuthの処理がうまくいきそうです。
3については、よくあるのが"ドメイン協調 (xxx.yyy.comにアクセスしてください!)" or "XXXで検索してください!"ってな感じです。
これも静的なページにたどりつくのが精一杯なので、Request Tokenの手動入力が役に立ちそうです。

ちなみに、GoogleMySpaceはこれに対応していない(パラメータ必須)ようです。