App only 認証と OAuth 2.0 Bearer Token
- ユーザーのタイムラインを取得
- 任意のアカウントの友人およびフォロワーにアクセス
- List リソースにアクセス
- Tweet を検索
- Tweet またはその他のリソースを Post
- ユーザーを検索
- 任意の geo endpoint を使用
- ダイレクトメッセージまたはアカウント資格情報にアクセス
- ユーザーのメールアドレスを取得
認証フロー
- アプリケーションは consumer key と secret を、特別な方式でエンコードした認証情報に変換します。
- アプリケーションは POST oauth2/token endpoint にリクエストを送り、これらの認証情報と引き換えに 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 エンコード済み consumer key(変更なし) | xvz1evFS4wEEPTGEFPHBog |
RFC 1738 エンコード済み consumer secret(変更なし) | L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
Bearer Token クレデンシャル | xvz1evFS4wEEPTGEFPHBog:L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
Base64 エンコード済み Bearer Token クレデンシャル | :: 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
キーに対応する値が、App only Access Token(Bearer Token)です。
1 つの App only Access Token は、同時に 1 つのアプリケーションに対してのみ有効である点に注意してください。同じ認証情報で /oauth2/token
に再度リクエストすると、無効化されるまで同じトークンが返されます。
ステップ 3: App only Access Token(Bearer Token)で API リクエストを認証する
App only Access Token(Bearer Token)は、アプリケーション専用認証をサポートする API endpoint へのリクエストに使用できます。App Access Token を使用するには、通常の HTTPS リクエストを作成し、Authorization
ヘッダーに Bearer <base64 bearer token value from step 2>. Signing is not required.
の値を設定してください。
リクエスト例(Authorization ヘッダーは折り返して表示):
よくあるエラーケース
- 無効なリクエストで App only Access Token (Bearer Token) を取得しようとした(例:
grant_type=client_credentials
を省略した)。 - 誤った、または有効期限切れのアプリ資格情報で App only Access Token (Bearer Token) を取得または失効しようとした。
- 誤った、またはすでに失効した App only Access Token (Bearer Token) を無効化しようとした。
- 短時間に過度な頻度で App only Access Token (Bearer Token) を取得しようとした。
API リクエストに無効な App only Access Token(Bearer Token)が含まれている
application-only 認証をサポートしていない endpoint で使用された App only Access Token (Bearer Token)
statuses/home_timeline
など)に App only Access Token (Bearer Token) でリクエストすると、次のようになります: