この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
更新日時:2026-05-17 06:14:09
タイトル: Your credentials do not allow access to this resource.
SEOタイトル: Your credentials do not allow access to this resource の対処
エラー内容
|
Your credentials do not allow access to this resource.
|
発生条件
- 外部 API (主に Twitter / X API) を呼び出した際に返ってくるエラーメッセージ
- OAuth 1.0a/OAuth 2.0 ベアラートークン認証で発生
- HTTP ステータスコード
403 Forbidden と一緒に返るのが典型
主な原因
| 原因 | 解説 |
| アクセストークン未設定/誤設定 | ACCESS_TOKEN、ACCESS_TOKEN_SECRET、CONSUMER_KEY、CONSUMER_SECRET のいずれかが空・タイプミス |
| 権限不足 (Permission) | Read のみのトークンで POST/書き込み API を叩いた |
| API プラン制限 | 有料プラン専用エンドポイントを Free / Basic で呼んだ (X API v2 で多発) |
| トークン失効・再生成 | Developer Portal でトークン再発行後、旧トークンを使い続けている |
| アプリ削除/停止 | 該当アプリが Developer Portal で suspended になっている |
| 環境変数の読み込み失敗 | .env 反映漏れ、CI のシークレット未設定 |
| OAuth 1.0a 署名ミス | タイムスタンプずれ、URL エンコード違い、ボディ含めた署名の誤り |
対処手順
1. キーが正しく読み込まれているか確認
- 環境変数や設定ファイルに余分なスペース・改行が混ざっていないかをチェック
- 4種類のキー (Consumer Key/Secret、Access Token/Secret) を Developer Portal の表示と1文字単位で照合
- 長さが極端に短い場合は途中で切れている可能性
2. 権限 (Permissions) を確認
- X (旧 Twitter) の Developer Portal にログイン
- 該当アプリの「User authentication settings」を開く
- App permissions が「Read only」だと書き込みできない。書き込み API を使うなら「Read and write」または「Read and write and Direct Messages」へ変更
- 権限変更後はAccess Token / Secret を再発行する (権限は発行時のトークンに紐付くため、再発行しないと有効化されない)
3. API のプラン要件を確認
- X API v2 では Free / Basic / Pro / Enterprise プランで呼べるエンドポイントが異なる
- 例: 検索系、過去ツイート取得などは有料プラン必須
- 公式ドキュメントで該当エンドポイントの必要プランを確認
4. トークン再発行
- Developer Portal → Keys and tokens タブ
- 「Regenerate」で Access Token & Secret を再発行
- 新しい値をアプリ/環境変数に反映
5. ライブラリ/コードのデバッグ
- 使用ライブラリのバージョンを最新化 (古いライブラリは OAuth 署名仕様の差異で失敗することがある)
- リクエストヘッダの
Authorization を実際にログ出力して、空でないか・期待した形式か確認
curl で同じトークンを使って単純な GET (例: users/me) を呼び、認証自体が通るかを切り分け
cURLでの確認例 (Bearer Token)
|
curl -H "Authorization: Bearer ${BEARER_TOKEN}" \
https://api.twitter.com/2/users/me
|
ここで同じ Your credentials do not allow ... が返るなら、トークン自体/プラン/権限のいずれかの問題です。
類似エラーとの違い
| エラー | 意味 |
Your credentials do not allow access to this resource. | 認証は成立したが権限不足/プラン不足 |
Could not authenticate you. | そもそも認証情報が無効 |
Rate limit exceeded | レート制限に達した (時間を空けて再試行) |
Forbidden (詳細メッセージなし) | アプリ停止・ユーザー凍結等の可能性 |
関連