メインコンテンツへスキップ

OAuth 1.0a

目的メソッド
3-legged OAuth フローおよび Sign in with X のステップ 1
コンシューマー アプリケーションが、ユーザー承認を要求するための OAuth Request Token を取得できるようにします。
POST oauth/request_token
3-legged OAuth フローおよび Sign in with X のステップ 2
コンシューマー アプリケーションが OAuth Request Token を使用してユーザー承認を要求できるようにします。
GET oauth/authenticate
3-legged OAuth フローおよび Sign in with X のステップ 2
コンシューマー アプリケーションが OAuth Request Token を使用してユーザー承認を要求できるようにします。
GET oauth/authorize
3-legged OAuth フローおよび Sign in with X のステップ 3
コンシューマー アプリケーションが OAuth Request Token を OAuth Access Token と交換できるようにします。
POST oauth/access_token
登録済みアプリケーションが発行済みの OAuth Access Token を失効させることを可能にします。POST oauth/invalidate_token

OAuth 2.0 ベアラー・トークン

目的メソッド
登録済みのアプリが、ユーザーコンテキストなしでアプリ自身の名義でAPIリクエストに使用できる、OAuth 2のアプリ専用ベアラー・トークンを生成できるようにします。POST oauth2/token
登録済みのアプリが、発行済みのOAuth 2 アプリ専用ベアラー・トークンを失効(取り消し)できるようにします。POST oauth2/invalidate_token

POST oauth/request_token

Consumer アプリがユーザー認可を求めるための OAuth Request Token を取得します。このメソッドは、OAuth 1.0 認証フローセクション 6.1に対応します。 すべての OAuth 認可手順で HTTPS の使用が必須です。 使用上の注意: oauth_nonce は ASCII の値のみ受け付けます Resource URL https://api.x.com/oauth/request_token Resource Information
Response formatsJSON
Requires authentication?No
Rate limited?Yes
Parameters
NameRequiredDescriptionExample
oauth_callbackrequiredOAuth 1.0a に準拠するため、このパラメータは必須です。ここで指定した値は、ユーザーがあなたのアプリへのアカウントアクセスを承認した場合にリダイレクトされる URL として使用されます。アウトオブバンドの PIN モードには oob を指定してください。これはデスクトップ/モバイルアプリでカスタムコールバックを指定する方法でもあります。事前登録済みのコールバックの有無にかかわらず、このステップでは常に oauth_callback を送信してください。

このエンドポイントで使用するコールバック URL は、developer.x.com 上のアプリの設定内で事前に構成しておく必要があります*
http://themattharris.local/auth.php twitterclient://callback
x_auth_access_typeoptionalアプリケーションがユーザーアカウントに要求するアクセスレベルを上書きします。サポートされる値は read または write です。このパラメータは、開発者が読み取り/書き込みのアプリケーションを登録しつつ、必要に応じて読み取り専用アクセスを要求できるようにするためのものです。
コールバック URL の承認方法についてはこのページをご覧ください。 ご注意 - developer.x.com で X アカウントにログインしている場合、X appsX app dashboard から閲覧および編集できます。 Example request Request URL: POST https://api.x.com/oauth/request_token Request POST Body: N/A Authorization Header: OAuth oauth_nonce="K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw", oauth_callback="http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1300228849", oauth_consumer_key="OqEqJeafRSF11jBMStrZz", oauth_signature="Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D", oauth_version="1.0" Response: oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik&oauth_token_secret=Kd75W4OQfb2oJTV0vzGzeXftVAwgMnEK9MumzYcM&oauth_callback_confirmed=true

GET oauth/authorize

Consumer アプリが OAuth Request Token を使用してユーザーの認可をリクエストできるようにします。このメソッドは OAuth 1.0 認証フローセクション 6.2に対応します。デスクトップアプリケーションはこのメソッドを使用する必要があり(GET oauth/authenticateは使用できません)。 使用上の注意: oauth_callback はこのメソッドには送信されません。代わりに POST oauth/request_token に指定してください。 リソース URL https://api.x.com/oauth/authorize リソース情報
レスポンス形式JSON
認証が必要かはい
レート制限あり?はい
パラメータ
NameRequired説明既定値
force_loginoptional正しいユーザーアカウントが承認されるよう、ユーザーに資格情報の再入力を強制します。
screen_nameoptionalOAuth ログイン画面のユーザー名入力欄に指定した値を事前入力します。
リクエスト例 ウェブブラウザで oauth_token パラメータを含めて、ユーザーを oauth/authorize ステップに遷移させます: https://api.x.com/oauth/authorize?oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik

GET oauth/authenticate

Consumer アプリが OAuth の request_token を用いてユーザーの認可をリクエストできるようにします。 このメソッドは、コールバック認証フローを利用するアプリ向けに、OAuth 1.0 authentication flowSection 6.2 を置き換えるものです。force_login パラメータが true に設定されていない限り、アクセス許可の対象アカウントとして現在ログイン中のユーザーが使用されます。 このメソッドは、ユーザーがすでにアプリに権限を付与している場合、ユーザーが再承認を行わなくてもリダイレクトが発生する点で、GET oauth / authorize と異なります。この挙動を有効にするには、application record で「Use Sign in with X」設定を有効化する必要があります。 Resource URL https://api.x.com/oauth/authenticate Resource Information
Response formatsJSON
Requires authentication?Yes
Rate limited?Yes
Parameters
NameRequiredDescriptionDefault ValueExample
force_loginoptional正しいユーザーアカウントが許可されるよう、資格情報の入力をユーザーに強制します。true
screen_nameoptionalOAuth ログイン画面のユーザー名入力欄に、指定した値をあらかじめ入力します。
Example request Web ブラウザでユーザーを oauth/authenticate ステップにリダイレクトし、oauth_token パラメータを含めます: https://api.x.com/oauth/authenticate?oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik

POST oauth/access_token

Consumer アプリが OAuth リクエストトークンを OAuth アクセストークンに交換できるようにします。このメソッドは OAuth 1.0 認証フローセクション 6.3に対応します。 リソース URL https://api.x.com/oauth/access_token リソース情報
レスポンス形式JSON
認証は必要ですか?はい
レート制限はありますか?はい
パラメーター
名前必須説明既定値
oauth_tokenrequiredここでの oauth_token は、request_token ステップで返された oauth_token と同一である必要があります。
oauth_verifierrequiredOAuth の Web フローを使用している場合、このパラメーターをコールバック URL で返された oauth_verifier の値に設定します。Out-of-band OAuth を使用している場合は、この値を PIN コードに設定します。OAuth 1.0a に準拠するため、このパラメーターは必須です。OAuth 1.0a は厳格に適用され、oauth_verifier を使用しないアプリは OAuth フローを完了できません。
リクエスト例 POST https://api.x.com/oauth/access_token?oauth_token=qLBVyoAAAAAAx72QAAATZxQWU6P&oauth_verifier=ghLM8lYmAxDbaqL912RZSRjCCEXKDIzx PIN ベースの場合 POST https://api.x.com/oauth/access_token?oauth_token=9Npq8AAAAAAAx72QBRABZ4DAfY9&oauth_verifier=4868795 レスポンス例 oauth_token=6253282-eWudHldSbIaelX7swmsiHImEL4KinwaGloHANdrY&oauth_token_secret=2EEfA6BG5ly3sR3XjE0IBSnlQu4ZrUzPiYTmrkVU&user_id=6253282&screen_name=xapi

POST oauth/invalidate_token

登録済みのアプリが、クライアント認証情報を提示することで、発行済みの OAuth access_token を失効させることができます。access_token が失効すると、新たに作成されるトークンは別の Access Token となり、失効済みトークンは使用できなくなります。 リソース URL https://api.x.com/1.1/oauth/invalidate_token リソース情報
レスポンス形式JSON
認証は必要かはい(無効化したいアクセストークンを持つユーザーコンテキスト)
レート制限あり
リクエスト例
        curl --request POST
          --url 'https://api.x.com/1.1/oauth/invalidate_token.json'
          --header 'authorization: OAuth oauth_consumer_key="CLIENT_KEY",
         oauth_nonce="AUTO_GENERATED_NONCE", oauth_signature="AUTO_GENERATED_SIGNATURE",
         oauth_signature_method="HMAC-SHA1", oauth_timestamp="AUTO_GENERATED_TIMESTAMP",
         oauth_token="ACCESS_TOKEN", oauth_version="1.0"'
サンプルレスポンス
        HTTP/1.1 200 OK
        Content-Type: application/json; charset=utf-8
        Content-Length: 127
        ...

        {"access_token":"ACCESS_TOKEN"}
トークン無効化後のエラー応答例
        HTTP/1.1 401 Authorization Required
        ...

        {"errors": [{
          "code": 89,
          "message": "トークンが無効または期限切れです。"}
        ]}

POST oauth2/token

登録済みのアプリが OAuth 2 Bearer Token を取得できます。これはユーザーコンテキストなしで、アプリ自身として API リクエストを行うために使用します。これはアプリケーションのみの認証と呼ばれます。 Bearer Token は oauth2/invalidate_token で無効化できます。いったん無効化されると、新規発行は別の Bearer Token になり、以前のトークンは使用できなくなります。 1 つのアプリにつき有効な bearer token は常に 1 つのみで、無効化されるまではこのメソッドへの繰り返しリクエストは同一の既存トークンを返します。 成功時のレスポンスには、付与された Bearer Token を記述する JSON 構造が含まれます。 この方法で受け取ったトークンはキャッシュしてください。試行が多すぎると、HTTP 403(コード 99)で拒否されます。 Resource URL https://api.x.com/oauth2/token Resource Information
Response formatsJSON
Requires authentication?Yes - ベーシック認証(API key をユーザー名、API key secret をパスワードとして使用)
Rate limited?Yes
Parameters
NameRequiredDescriptionDefault ValueExample
grant_typerequiredアプリが要求するグラント種別を指定します。現時点では client_credentials のみが許可されています。詳細は Application-Only Authentication を参照してください。client_credentials
Example request
    POST /oauth2/token HTTP/1.1
    Host: api.x.com
    User-Agent: My X App v1.0.23
    Authorization: Basic eHZ6MWV2R ... o4OERSZHlPZw==
    Content-Type: application/x-www-form-urlencoded;charset=UTF-8
    Content-Length: 29
    Accept-Encoding: gzip

    grant_type=client_credentials
応答例:
    HTTP/1.1 200 OK
    Status: 200 OK
    Content-Type: application/json; charset=utf-8
    ...
    Content-Encoding: gzip
    Content-Length: 140

    {"token_type":"bearer","access_token":"AAAA%2FAAA%3DAAAAAAAA"}

POST oauth2/invalidate_token

登録済みのアプリが、クライアント資格情報を提示することで発行済みの OAuth 2.0 Bearer Token を無効化できます。Bearer Token を無効化すると、新たに発行されるトークンは別の値となり、無効化済みトークンは以後使用できません。 成功時の応答には、無効化された Bearer Token を記述する JSON 構造体が含まれます。 Resource URL https://api.x.com/oauth2/invalidate_token Resource Information
Response formatsJSON
Requires authentication?Yes - OAuth 1.0a with the application’s consumer API keys and the application owner’s access token & access token secret
Rate limited?Yes
Parameters
NameRequiredDescription
access_tokenrequired無効化したい Bearer Token の値
Example request
        curl --request POST
          --url 'https://api.x.com/oauth2/invalidate_token?access_token=AAAA%2FAAA%3DAAAAAAAA'
          --header 'authorization: OAuth oauth_consumer_key="CLIENT_KEY",
         oauth_nonce="AUTO_GENERATED_NONCE", oauth_signature="AUTO_GENERATED_SIGNATURE",
         oauth_signature_method="HMAC-SHA1", oauth_timestamp="AUTO_GENERATED_TIMESTAMP",
         oauth_token="ACCESS_TOKEN", oauth_version="1.0"'
レスポンスの例
         Status: 200 OK
         Content-Type: application/json; charset=utf-8
         Content-Length: 135
         ...
       {
        "access_token": "AAAA%2FAAA%3DAAAAAAAA"
        }