- 動作確認日:2026-10-01
- n8nのバージョン:2.41.3(Docker、セルフホスト)
目次
起きたこと
n8nからSlackに通知するために、Slackアプリを作り、「Bot Token Scopes」に chat:write だけを付けました。
送る前に、アプリが通知用のチャンネルに入っているかを、Slackの API(conversations.info)で確かめようとしたところ、次の応答が返ってきました。
GET https://slack.com/api/conversations.info?channel=チャンネルID
→ {"ok":false,"error":"missing_scope"}
トークンそのものは正しく、auth.test は ok: true でした。
原因
missing_scope は、「そのAPIを使うための権限(scope)が、トークンに付いていない」という意味です。
チャンネルの情報を読む conversations.info には、channels:read(非公開チャンネルなら groups:read)の権限が必要です。今回は、メッセージを書き込むための chat:write しか付けていませんでした。
対処
今回は、メッセージを送るだけなので、権限は増やさずにそのまま進めました。n8nのSlackノードでメッセージを送ると、エラーなく届きました。
チャンネルの情報も読みたい場合は、次の手順で権限を足します。
- https://api.slack.com/apps で、アプリを開く
- 「OAuth & Permissions」の「Bot Token Scopes」に、
channels:readを足す - 同じページの上部から、アプリをワークスペースに入れ直す(Reinstall)。権限を足したあとは、入れ直すまで新しい権限は使えません。
よくある組み合わせ
| やりたいこと | 必要な権限(Bot Token Scopes) |
|---|---|
| メッセージを送る | chat:write |
| 招待されていない公開チャンネルにも送る | chat:write.public |
| 公開チャンネルの情報を読む | channels:read |
| 非公開チャンネルの情報を読む | groups:read |
送るときに出やすいエラー
chat:write があっても、アプリをチャンネルに招待していないと、送れません。チャンネルで /invite @アプリ名 を送って、招待してください。
