概要
- API Key and Secret: 本質的には App のユーザー名とパスワードに相当します。OAuth 1.0a ユーザーコンテキストを必要とするリクエストの認証や、ユーザー Access Tokens や App Access Token など他のトークンの生成に使用します。
- Access Token and Secret: 一般に、Access Tokens はあなたが代理してリクエストを行うユーザーを表します。developer portal で生成できるものは、App の所有者であるユーザーを表します。これらは OAuth 1.0a ユーザーコンテキストを必要とするリクエストの認証に使用します。別のユーザーの代理でリクエストする場合は、そのユーザーに認可してもらうために 3-legged OAuth フローを使用する必要があります。
- Client ID and Client Secret: これらの資格情報は、OAuth 2.0 認証でユーザーの Access Token を取得するために使用します。OAuth 1.0a と同様に、ユーザー Access Tokens は非公開のユーザーアカウント情報を提供するリクエストの認証や、他アカウントの代理での操作に使用されますが、クライアントアプリケーションがユーザーに対して持つアクセス権をより細かく制御できるスコープが適用されます。
- App only Access Token: X 上で公開されている情報を返す endpoint へのリクエスト時に使用します。
App と Project
developer portal のダッシュボード
- 既存の Standalone App とそれに関連付けられた App ID を表示します。
- 新しい Project、App、または Standalone App を作成します。
- 未使用の Project または App を削除します。
- 特定の App の設定を確認または更新します(名前、説明、ウェブサイト、コールバック URL、permissions の更新を含む)。
- API Key & Secret、App Access Token、App 所有者のユーザー Access Tokens など、App 固有の認証情報を再生成します。
アクセスの申し込み
ボット向けの自動アカウントのラベル付け
- アカウント設定に移動します
- “Your account” を選択します
- “Automation” を選択します
- “Managing account” を選択します
- 次に、ボットアカウントを運用している X アカウントを選択します
- パスワードを入力してログインします
- 最後に、ラベルがアカウントに適用されたことを示す確認メッセージが表示されます。
Appの管理
はじめに
- 既存の App とProjects、およびそれらに関連付けられた App の id を表示します。
- 新しい Project またはスタンドアロンの App を作成します。
- Project、App、またはスタンドアロンの App を削除します。
- 特定の App の設定をクリックして開きます。設定では、App の詳細、キーおよびトークン、権限を確認できます。
- App のユーザー認証設定を更新し、OAuth 1.0a または OAuth 2.0 を使用するように構成します。
注:すべての App のキーおよびトークンは developer portal 内では表示できなくなっており、生成後は必ず安全に保存する必要があります。キーおよびトークンの保管にはパスワードマネージャーの使用を推奨します。API Key のヒントを表示して、認証情報と対応する App を照合する際の手がかりにできます。
App の設定
App の詳細
キーおよびトークン
- API Key (Consumer Key) と API Secret (Consumer Secret)
- App Access Token
- User Access Token と Access Token Secret - developer portal で利用可能な Access Token と Secret は、その App の所有ユーザーに紐づいています。
ユーザー認証設定
OAuth 1.0a アプリケーション—ユーザー権限
OAuth 2.0 の App の種類
App の権限
OAuth 1.0a App の権限
- 読み取りのみ
- 読み取りと書き込み
- 読み取り、書き込み、ダイレクトメッセージへのアクセス
読み取り専用
読み取りと書き込み
ダイレクトメッセージの読み取り、書き込み、削除へのアクセス
- POST /2/dm_conversations/:dm_conversation_id/messages
- POST /2/dm_conversations/
- POST /2/dm_conversations/with/:participant_id/messages
- GET /2/dm_conversations/with/:user_id/dm_events
- GET /2/dm_conversations/:dm_conversation_id/dm_events
- GET /2/dm_events
権限の判定
x-access-level
ヘッダーを含めて返します。ヘッダーの値は、現在適用されている権限レベルを示します。取り得る値は read、read-write、read-write-directmessages です。
コールバックURL
- OAuth 2.0 authorization code flow with PKCE
- OAuth 1.0a 3-legged OAuth flow(および別途、Sign in with X flow)
callback_url
パラメータを渡す必要があります。同様に、OAuth 2.0 Authorization Code(PKCE 付き)を使用する場合は、GET oauth2/authorize endpoint へのリクエストに redirect_uri
パラメータを渡す必要があります。
これらのパラメータを指定するだけでなく、コールバックURLが App のコールバックURL許可リストにも追加されていることを確認してください。これは developer portal の App 設定ページで確認できます。
正しく設定されていれば、これらのフローの一環として X へのサインインに成功した後、ユーザーはコールバックURLにリダイレクトされます。
留意すべき点
callback_url
または redirect_uri
パラメータでコールバックURLを query パラメータとして渡すため、URL を HTTP エンコードしてください。
コールバックURLの制限
X Apps ダッシュボードでは、コールバックURLは最大 10 件までという厳格な上限があります。コールバックURLは、Apps ダッシュボードで許可リストに追加したコールバックURLと、認可フローで指定するパラメータの値が常に完全一致している必要があります。
コールバックURLにリクエスト固有のデータを含めたい場合は、state
パラメータを使用して、ユーザーがリダイレクトされた後に受け渡されるデータを保持できます。state
パラメータ自体にデータをエンコードするか、サーバー側で状態を保持するためのセッションIDとしてこのパラメータを使用できます。
localhost をコールバックURLとして使用しないでください
localhost の代わりに、ローカルではカスタムホスト、または http(s)://127.0.0.1 を使用してください。
カスタムプロトコルURL
モバイルのディープリンクを活用する場合は、twitter://callback/path のように、パスとドメイン部分を含むカスタムプロトコルURLを利用できます。ただし、利用禁止のプロトコル一覧があるため、これらは避けてください。以下で禁止プロトコルの一覧を確認できます。
禁止プロトコル
vbscript | ldap |
javascript | mailto |
vbs | mmst |
data | mmsu |
mocha | msbd |
keyword | rtsp |
livescript | mso-offdap |
ftp | snews |
file | news |
gopher | nntp |
acrobat | outlook |
callto | stssync |
daap | rlogin |
itpc | telnet |
itms | tn3270 |
firefoxurl | shell |
hcp | sip |
エラーの例
HTTP 403 - Forbidden
HTTP 400