はじめに
資格情報はどのくらいの間有効ですか?
デフォルトでは、PKCE を用いた Authorization Code フローで作成したアクセストークンは、offline.access スコープを使用していない限り、2時間のみ有効です。
リフレッシュトークン
offline.access が適用されている場合、OAuth 2.0 のリフレッシュトークンが発行されます。このリフレッシュトークンを使用してアクセストークンを取得できます。このスコープが付与されていない場合は、リフレッシュトークンは発行されません。
新しいアクセストークンを取得するためにリフレッシュトークンを使用するリクエストの例は次のとおりです:
アプリ設定
機密クライアント
スコープ
| スコープ | 説明 |
| tweet.read | 閲覧可能なすべてのTweet。保護されたアカウントのTweetを含みます。 |
| tweet.write | あなたに代わってTweetおよびRetweetします。 |
| tweet.moderate.write | あなたのTweetへの返信を非表示/再表示します。 |
| users.email | 認証済みユーザーのメールアドレス。 |
| users.read | 閲覧可能なすべてのアカウント。保護されたアカウントを含みます。 |
| follows.read | あなたをフォローしている人、およびあなたがフォローしている人。 |
| follows.write | あなたに代わってフォロー/フォロー解除します。 |
| offline.access | アクセスを取り消すまで、あなたのアカウントに接続し続けます。 |
| space.read | 閲覧可能なすべてのSpaces。 |
| mute.read | ミュートしているアカウント。 |
| mute.write | あなたに代わってアカウントをミュート/ミュート解除します。 |
| like.read | あなたがいいねしたTweet、および閲覧可能ないいね。 |
| like.write | あなたに代わってTweetにいいね/いいね取り消しを行います。 |
| list.read | あなたが作成した、またはメンバーであるリスト、リストメンバー、リストのフォロワー。非公開リストを含みます。 |
| list.write | あなたに代わってリストを作成および管理します。 |
| block.read | ブロックしているアカウント。 |
| block.write | あなたに代わってアカウントをブロック/ブロック解除します。 |
| bookmark.read | 認証済みユーザーのブックマーク済みTweetを取得します。 |
| bookmark.write | Tweetをブックマーク/ブックマーク解除します。 |
| media.write | メディアをアップロードします。 |
レート制限
グラントタイプ
OAuth 2.0 フロー
用語集
| 用語 | 説明 |
| グラントタイプ | OAuth フレームワークは、さまざまなユースケース向けに複数のグラントタイプを定義し、新しいグラントタイプを作成するための枠組みも提供します。例として、authorization code、client credentials、device code、refresh token があります。 |
| 機密クライアント | 登録済みの client secret を安全に保持するなど、認可サーバーに対して安全に認証できるアプリケーションを指します。 |
| パブリッククライアント | ブラウザやモバイルデバイス上で動作するアプリケーションなど、登録済みの client secret を使用できないクライアントです。 |
| Authorization code フロー | 機密クライアントとパブリッククライアントの双方で、authorization code をアクセストークンに交換するために使用されます。 |
| PKCE | 複数の攻撃を防ぎ、パブリッククライアントから安全に OAuth の交換を実施できるようにする、authorization code フローの拡張です。 |
| Client ID | 開発者ポータルの「キーとトークン」セクション内の「Client ID」ヘッダーの下にあります。表示されない場合は、当社チームまで直接ご連絡ください。Client ID は authorize URL の生成に必要です。 |
| Redirect URI | コールバック URL。 厳密一致検証が必要です。 |
| Authorization code | これにより、アプリケーションはユーザーに代わって API を呼び出すことができます。auth_code とも呼ばれます。App の所有者がユーザーから承認済みの auth_code を受け取ってから、有効期限は 30 秒です。30 秒以内にアクセストークンと交換する必要があり、過ぎると auth_code は失効します。 |
| Access token | アクセストークンは、アプリケーションがユーザーに代わって API リクエストを行うために使用するトークンです。 |
| Refresh token | ユーザーに再承認を求めることなく、refresh token フローを通じて新しいアクセストークンを取得できるようにします。 |
| Client Secret | 機密クライアントの App タイプを選択している場合、App の「キーとトークン」セクション内の「Client ID」の下に「Client Secret」が表示されます。 |
パラメータ
| パラメータ | 説明 |
| response_type | これは認可コードであることを “code” という語で指定する必要があります。 |
| client_id | 開発者ポータルの「Client ID」ヘッダーの下にあります。 |
| redirect_uri | コールバック URL。この値はアプリの設定で定義されている Callback URLs のいずれかと一致している必要があります。OAuth 2.0 では、コールバック URL に対して厳密一致の検証が必要です。 |
| state | あなたが提供するランダムな文字列で、CSRF 攻撃に対する検証に使用します。文字列の長さは最大 500 文字です。 |
| code_challenge | PKCE のパラメータで、各リクエストごとのランダムなシークレットです。 |
| code_challenge_method | リクエストに使用する方式を指定します(S256 または plain)。 |