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を叩いてみます。
ここで同じ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制限
- プラン問題
など原因がかなり幅広いです。
重要なのは、「どこで失敗しているか」を切り分けることです。
