n8nで401 Unauthorizedが出る原因と対処法【X API対応】

AI自動化

n8nでX APIを使っていると、

401 Unauthorized

というエラーが出ることがあります。

かなりよくあるエラーですが、最初は原因が分かりづらいです。

特に厄介なのが、

設定は合っているように見えるのに動かない

というパターンです。

この記事では、実際に詰まったポイントをベースに、401 Unauthorizedが出る原因と対処法を整理します。


401 Unauthorizedとは?

簡単にいうと、「認証に失敗している」という意味です。

つまり、

  • APIキー
  • Bearer Token
  • Authorizationヘッダ

などに問題があります。


よくある原因

まず、原因はだいたいこのあたりです。

・Bearer Tokenが間違っている
・Authorizationヘッダが設定されていない
・X API側の権限不足
・endpointが使えない
・Freeプラン制限


Bearer Tokenミス

一番多いのがこれです。

例えばn8nで、

Authorization: Bearer xxxxx

を設定しているつもりでも、

  • Tokenコピペミス
  • 空白混入
  • 古いToken

などで認証失敗します。


確認ポイント

まずここを確認してください。

Authorization
Bearer xxxxx

「Bearer」の後に半角スペースが必要です。


Header設定漏れ

これもかなり多いです。

n8nでは、

  • Authentication設定
  • Header設定

の両方が存在します。

そのため、「設定したつもり」で実際は送れていないケースがあります。


endpoint問題

X APIは、使うendpointによって必要な権限が違います。

例えば、

https://api.x.com/2/tweets/search/recent

は使えても、別endpointでは権限不足になることがあります。

※ endpoint(エンドポイント)とは、簡単にいうと「APIのアクセス先URL」のことです。

例えばX APIでは、
https://api.x.com/2/tweets/search/recent
のように、用途ごとにURLが分かれています。

・投稿検索用
・投稿用
・ユーザー取得用

など、それぞれ別endpointになっています。

Freeプラン制限

これもかなりハマります。

X API Freeプランでは、使えないendpointがあります。

その場合、

403 Forbidden

だけでなく、

401 Unauthorized

になるケースもあります。

かなり分かりづらいです。


n8n側では問題ないケースもある

ここ重要です。

実際には、n8nではなくX API側の制限ということも普通にあります。

特に、

  • APIプラン変更
  • 権限制限
  • endpoint仕様変更

は突然起きます。


確認方法

迷ったら、まずはこれです。


① Postmanで試す

まずは、n8nではなくPostmanで直接APIを叩いてみます。

Postmanは、APIをテストできるツールです。

ここで同じAPIリクエストを実行して、

・Postmanでは成功する
・n8nでは失敗する

場合は、n8n側の設定ミスの可能性が高いです。

逆に、Postmanでも失敗する場合は、X API側の認証や権限の問題である可能性が高くなります。

つまり、

「n8nの問題なのか」
「API側の問題なのか」

を切り分けるために使います。


② curlで確認する

② curlで確認する

さらに、curlコマンドを使うと、APIを直接テストできます。

curlは、ターミナルやコマンドプロンプトからAPIを呼び出すためのコマンドです。

Windowsなら「コマンドプロンプト」や「PowerShell」、
Macなら「ターミナル」で実行できます。

curl -H "Authorization: Bearer xxxxx" \
"https://api.x.com/2/tweets/search/recent?query=cat"

これで切り分けできます。


対処のコツ

401が出たら、

① Token確認
② Header確認
③ endpoint確認
④ プラン確認

を順番に見ます。

いきなりn8nを疑わない方が早いです。


まとめ

401 Unauthorizedは、「認証できていない」という意味です。

ただ実際には、

  • Tokenミス
  • Header不足
  • endpoint制限
  • プラン問題

など原因がかなり幅広いです。

重要なのは、「どこで失敗しているか」を切り分けることです。

タイトルとURLをコピーしました