はじめに
認証情報はどのくらいの期間有効ですか?
offline.access スコープを使用していない限り、2 時間しか有効ではありません。
リフレッシュトークン
offline.access が適用されている場合、OAuth 2.0 リフレッシュトークンが発行されます。このリフレッシュトークンを使ってアクセストークンを取得できます。このスコープがリクエストに含まれていない場合、リフレッシュトークンは生成されません。
リフレッシュトークンを使用して新しいアクセストークンを取得する際のリクエスト例は次のとおりです。
App の設定
機密クライアント
スコープ
| Scope | 説明 |
| tweet.read | あなたが閲覧できるすべてのツイート (保護されたアカウントのツイートを含む) 。 |
| tweet.write | あなたに代わってツイートおよびリツイートを行う。 |
| tweet.moderate.write | あなたのツイートへの返信を非表示/再表示する。 |
| users.email | 認証済みユーザーのメールアドレス。 |
| users.read | あなたが閲覧できる任意のアカウント (保護されたアカウントを含む) 。 |
| follows.read | あなたをフォローしているアカウント、およびあなたがフォローしているアカウント。 |
| follows.write | あなたに代わってアカウントをフォロー/フォロー解除する。 |
| offline.access | あなたがアクセスを取り消すまで、あなたのアカウントとの接続を維持する。 |
| space.read | あなたが閲覧できるすべてのスペース。 |
| mute.read | あなたがミュートしているアカウント。 |
| mute.write | あなたに代わってアカウントをミュート/ミュート解除する。 |
| like.read | あなたがいいねしたツイート、およびあなたが閲覧できるいいね。 |
| like.write | あなたに代わってツイートにいいね/いいねの取り消しを行う。 |
| list.read | あなたが作成した、またはメンバーになっているリスト (非公開リストを含む) のリスト本体、メンバー、およびフォロワー。 |
| list.write | あなたに代わってリストを作成および管理する。 |
| block.read | あなたがブロックしているアカウント。 |
| block.write | あなたに代わってアカウントをブロック/ブロック解除する。 |
| bookmark.read | 認証済みユーザーのブックマーク済みツイート。 |
| bookmark.write | ツイートのブックマークおよびブックマーク解除を行う。 |
| media.write | メディアをアップロードする。 |
レート制限
グラントタイプ
OAuth 2.0 フロー
用語集
| Term | Description |
| 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 | 開発者コンソールの keys and tokens セクション内の “Client ID” 見出しの下にあります。これが表示されていない場合は、弊社チームまで直接ご連絡ください。authorize URL を生成する際に Client ID が必要になります。 |
| Redirect URI | アプリケーションの callback URL です。厳密一致検証 を行う必要があります。 |
| Authorization code | アプリケーションがユーザーに代わって API を呼び出せるようにするものです。auth_code として知られています。auth_code は、App の所有者がユーザーから承認済みの auth_code を受け取ってから 30 秒間の有効期限があります。30 秒以内に access token と交換しない場合、auth_code は失効します。 |
| Access token | Access token は、アプリケーションがユーザーに代わって API リクエストを行う際に使用するトークンです。 |
| Refresh token | refresh token flow を通じて、ユーザーに再度プロンプトを表示することなく、新しい access token を取得できるようにします。 |
| Client Secret | 機密クライアントである App タイプを選択した場合、開発者コンソールの App の keys and tokens セクション内で、「Client ID」の下に「Client Secret」が表示されます。 |
パラメーター
| Parameter | Description |
| response_type | これがコードであることを示すために、“code” という単語を指定する必要があります。 |
| client_id | 開発者コンソールのヘッダー「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)。 |