3-legged OAuth フローを使用してアクセス・トークンを取得する
- GET oauth/authorize エンドポイントを、GET oauth/authenticate の代わりに使用します。
- ユーザーは、以前にアクセスが許可されている場合でも、あなたのアプリケーションへのアクセス承認を常に求められます。
プロセスの概要
- コンシューマーアプリケーションがリクエストトークンを取得するためのリクエストを作成する。
- ユーザーを認証し、コンシューマーアプリケーションにリクエストトークンを送信する。
- リクエストトークンを使用可能なユーザーアクセス用トークンに変換する。
- App Key === API Key === Consumer API Key === Consumer Key === Customer Key ===
oauth_consumer_key - App Key Secret === API Secret Key === Consumer Secret === Consumer Key === Customer Key ===
oauth_consumer_secret - Callback URL ===
oauth_callback
- Request Token ===
oauth_token - Request Token Secret ===
oauth_token_secret - oauth_verifier
- Access token === Token === 結果の
oauth_token - Access token secret === Token Secret === 結果の
oauth_token_secret
手順のウォークスルー
oauth_callback="https%3A%2F%2FyourCallbackUrl.com"
oauth_consumer_key="cChZNFj6T5R0TigYB9yd1w"
アプリはレスポンスの HTTP ステータスを確認する必要があります。200 以外の値は失敗を示します。レスポンス本文には oauth_token、oauth_token_secret、oauth_callback_confirmed パラメータが含まれます。アプリは oauth_callback_confirmed が true であることを確認し、他の2つの値は次の手順のために保存してください。
レスポンスに含まれるもの
oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0
oauth_token_secret=veNRnAWe6inFuo8o2u8SLLZLjolYDmDP7SzL0YfYI
oauth_callback_confirmed=true
ステップ 2: GET oauth/authorize
ユーザーに認証してもらい、コンシューマーアプリケーションにリクエストトークンを送信します。
ユーザーをリダイレクトする例の URL:
https://api.x.com/oauth/authorize?oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0
認証が成功すると、callback_url は oauth_token と oauth_verifier パラメータを含むリクエストを受け取ります。アプリケーションは、このトークンがステップ1で受け取ったリクエストトークンと一致することを確認する必要があります。
クライアントのリダイレクトからのリクエスト:
https://yourCallbackUrl.com?oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0&oauth_verifier=uw7NjWHT6OJ1MpJOXsHfNxoAhPKpgI8BlYDhxEjIBY
ステップ 3: POST oauth/access_token
リクエストトークンを使用可能なアクセストークンに変換します。
リクエストトークンを使用可能なアクセストークンにするには、ステップ2で取得した oauth_verifier の値を含めて POST oauth/access_token エンドポイントにリクエストを送信する必要があります。リクエストトークンはヘッダーの oauth_token 部分でも渡されますが、これは署名プロセスによって追加されています。
リクエストに含まれるもの:
POST /oauth/access_token
oauth_consumer_key=cChZNFj6T5R0TigYB9yd1w
oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0
oauth_verifier=uw7NjWHT6OJ1MpJOXsHfNxoAhPKpgI8BlYDhxEjIBY
成功したレスポンスには oauth_token、oauth_token_secret パラメータが含まれます。トークンとトークンシークレットは保存し、今後の X API への認証済みリクエストで使用してください。ユーザーの識別を行うには、GET account/verify_credentials を使用します。
レスポンスに含まれるもの:
oauth_token=7588892-kagSNqWge8gB1WwE3plnFsJHAZVfxWD7Vb57p0b4
oauth_token_secret=PbKfYqSryyeKDWz4ebtY3o5ogNLG11WJuZBc9fQrQo
これらのクレデンシャルを OAuth 1.0a(アプリケーション-ユーザー)で必要なリクエストに使用する
これでユーザーアクセス・トークンを取得したので、ユーザーに代わってTweetを作成するために POST statuses/update などの特定のAPIにアクセスできます。
リクエストの内容:
POST statuses/update.json
oauth_consumer_key=cChZNFj6T5R0TigYB9yd1w
oauth_token=7588892-kagSNqWge8gB1WwE3plnFsJHAZVfxWD7Vb57p0b4
サンプルのユースケース


