アプリのみの認証と OAuth 2.0 ベアラートークン
- ユーザーのタイムラインの取得
- 任意のアカウントのフォロー中/フォロワーへのアクセス
- リスト関連リソースへのアクセス
- Tweet の検索
- Tweet またはその他のリソースの投稿
- ユーザーの検索
- いずれかのジオエンドポイントの使用
- ダイレクトメッセージまたはアカウント資格情報へのアクセス
- ユーザーのメールアドレスの取得
認証フロー
- アプリケーションは、コンシューマーキーとシークレットを特別な形式でエンコードした資格情報に変換します。
- アプリケーションは、POST oauth2/token エンドポイントにリクエストを送り、これらの資格情報を App only Access Token と交換します。
- REST API にアクセスする際、アプリケーションは App only Access Token を使用して認証します。

アプリのみ認証について
アプリのみのリクエストの発行
- RFC 1738 に従って consumer key と consumer secret を URL エンコードします。執筆時点では、これは実際には consumer key と secret を変更しませんが、将来的にそれらの値の形式が変わる可能性に備えて、この手順は実施してください。
- エンコード済みの consumer key、コロン文字「:」、エンコード済みの consumer secret を連結して 1 つの文字列にします。
- 前の手順で作成した文字列をBase64 エンコードします。
| Consumer key | xvz1evFS4wEEPTGEFPHBog |
| Consumer secret | L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
| RFC 1738 encoded consumer key (does not change) | xvz1evFS4wEEPTGEFPHBog |
| RFC 1738 encoded consumer secret (does not change) | L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
| Bearer Token credentials | xvz1evFS4wEEPTGEFPHBog:L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
| Base64 encoded Bearer Token credentials | :: eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw== |
- リクエストは HTTP POST である必要があります。
- リクエストには
Authorizationヘッダーを含め、その値はBasic <base64 encoded value from step 1>.とする必要があります。 - リクエストには
Content-Typeヘッダーを含め、その値はapplication/x-www-form-urlencoded;charset=UTF-8.とする必要があります。 - リクエストのボディは
grant_type=client_credentialsである必要があります。
token_type キーに対応する値が bearer であることを確認する必要があります。access_token キーに対応する値が、アプリ専用アクセス・トークン(Bearer Token)です。
1つのアプリ専用アクセス・トークンは、同時に1つのアプリケーションに対してのみ有効である点に注意してください。同じ認証情報で /oauth2/token に再度リクエストしても、無効化されるまでは同じトークンが返されます。
ステップ3: アプリ専用アクセス・トークン(Bearer Token)で API リクエストを認証する
アプリ専用アクセス・トークン(Bearer Token)は、アプリケーション専用認証をサポートする API エンドポイントへのリクエストに使用できます。アプリ専用アクセス・トークンを使用するには、通常の HTTPS リクエストを作成し、Authorization ヘッダーに Bearer <step 2 で取得した base64 の bearer トークン値>。署名は不要です。 を含めてください。
リクエスト例(Authorization ヘッダーは折り返し表示):
よくあるエラーケース
- 無効なリクエストでアプリのみアクセス トークン(Bearer Token)を取得する(例:
grant_type=client_credentialsを省略する)。 - 誤っている、または期限切れのアプリ資格情報でアプリのみアクセス トークン(Bearer Token)を取得または失効させる。
- 誤っている、またはすでに失効済みのアプリのみアクセス トークン(Bearer Token)を無効化する。
- 短時間に過度な頻度でアプリのみアクセス トークン(Bearer Token)を取得する。
API リクエストに無効なアプリ専用アクセス トークン(ベアラー トークン)が含まれています
アプリのみアクセス トークン(Bearer トークン)を、アプリケーションのみ認証をサポートしないエンドポイントで使用した場合
statuses/home_timeline など)に、アプリのみアクセス トークン(Bearer トークン)でリクエストすると、次のようになります: