3-legged OAuth フローを使用して Access Tokens を取得する
- GET oauth/authorize endpoint を、GET oauth/authenticate の代わりに使用します。
- 以前にアクセスが付与されていた場合でも、ユーザーは必ずあなたのアプリケーションへのアクセス許可を求められます。

プロセスの概要
- コンシューマーアプリケーションがリクエストトークンを取得するためのリクエストを作成します。
- ユーザーが認証し、コンシューマーアプリケーションにリクエストトークンを送信します。
- リクエストトークンを、使用可能なユーザーの access token に変換します。
- 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 === resulting
oauth_token
- Access token secret === Token Secret === resulting
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
ユーザーに認証してもらい、コンシューマーアプリケーションにリクエストトークンを送信します。
ユーザーのリダイレクト先の例:
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
リクエストトークンを使用可能な access token に変換します。
リクエストトークンを使用可能な access token に変換するには、アプリケーションはステップ 2 で取得した oauth_verifier
の値を含めて POST oauth/access_token endpoint にリクエストを送信する必要があります。リクエストトークンはヘッダーの 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(アプリケーション-ユーザー)必須リクエストの実行
これでユーザーのAccess Tokensを取得できたので、POST statuses/update などの特定のAPIを使用して、ユーザーに代わってTweetを作成できます。
リクエスト内容:
POST statuses/update.json
oauth_consumer_key=cChZNFj6T5R0TigYB9yd1w
oauth_token=7588892-kagSNqWge8gB1WwE3plnFsJHAZVfxWD7Vb57p0b4
サンプルユースケース


