この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
ページ更新者:atom
更新日時: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_TOKENACCESS_TOKEN_SECRETCONSUMER_KEYCONSUMER_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) を確認

  1. X (旧 Twitter) の Developer Portal にログイン
  2. 該当アプリの「User authentication settings」を開く
  3. App permissions が「Read only」だと書き込みできない。書き込み API を使うなら「Read and write」または「Read and write and Direct Messages」へ変更
  4. 権限変更後はAccess Token / Secret を再発行する (権限は発行時のトークンに紐付くため、再発行しないと有効化されない)

3. API のプラン要件を確認

  • X API v2 では Free / Basic / Pro / Enterprise プランで呼べるエンドポイントが異なる
  • 例: 検索系、過去ツイート取得などは有料プラン必須
  • 公式ドキュメントで該当エンドポイントの必要プランを確認

4. トークン再発行

  1. Developer Portal → Keys and tokens タブ
  2. 「Regenerate」で Access Token & Secret を再発行
  3. 新しい値をアプリ/環境変数に反映

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 (詳細メッセージなし)アプリ停止・ユーザー凍結等の可能性

関連