Slack は Discord や Telegram より少しクリックが多いですが、フローは線形です。app をインストールできる権限のある Slack ワークスペースが必要。
1. App を作成
- api.slack.com/apps → Create New App → From scratch。
- 名前を付ける(例:エージェント名)。
- ワークスペースを選ぶ → Create App。
2. Socket Mode を有効化
Socket Mode は bot を WebSocket で接続させます — 公開 HTTPS エンドポイント不要。
- 左サイドバー → Socket Mode → Enable Socket Mode を ON に。
- プロンプトが出たら、scope
connections:writeの App-Level Token を作成。 - トークンをコピー —
xapp-…で始まる。保存。
3. Bot scope を追加
- 左サイドバー → OAuth & Permissions。
- Bot Token Scopes までスクロール、追加:
app_mentions:readchat:writechannels:historyim:historyim:write
4. イベントサブスクリプションを有効化
- 左サイドバー → Event Subscriptions → Enable Events を ON に。
- Subscribe to bot events の下で、
app_mentionとmessage.imを追加。 - Save changes。
5. ワークスペースにインストール
- 左サイドバー → Install App → Install to Workspace → Allow。
- Bot User OAuth Token をコピー —
xoxb-…で始まる。保存。
6. sento init を実行
npx sentoagent init
Slack を選ぶ。プロンプトで両方のトークンを貼り付け:
SLACK_APP_TOKEN=xapp-…SLACK_BOT_TOKEN=xoxb-…
アクセス制御
~/.claude/channels/slack/access.json:
{
"dmPolicy": "allowlist",
"allowFrom": ["U01ABCD1234"],
"groups": {
"C01EFGH5678": { "requireMention": true, "allowFrom": [] }
}
}
allowFromは Slack ユーザー ID(Uで始まる)。groupsのキーはチャンネル ID(public はCで、private はGで始まる)。
よくある落とし穴
- DM で応答なし:
im:historyとim:writescope が欠けている。追加して app を再インストール。 - メンションしても応答なし:
app_mentions:readが欠けているか、app_mentionイベントが購読されていない。 not_allowed_token_typeエラー:トークンを逆に貼り付けた —xappが app トークン、xoxbが bot トークン。