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