如何让Slack Bot通过Incoming Webhooks直接向用户发送独立私信?
解决Slack Bot直接发送独立私信给用户的问题
问题原因
你当前使用的Incoming Webhook是绑定到你和Peter的私聊频道的,因此消息会直接投递到这个共享频道中,且因Webhook通过你的管理员身份创建,消息会显示为你的账号发起(实际内容来自Bot,但频道归属为你和Peter的私聊)。Incoming Webhook本质与特定频道绑定,无法直接创建Bot和用户的独立私信会话。
解决方案:使用Slack Chat API发送私信
要实现Bot直接向Peter发送独立私信,需使用Slack的chat.postMessage API,具体步骤如下:
- 获取Peter的用户ID:打开Slack中Peter的个人资料,复制其以
U开头的用户ID(例如U12345678)。 - 准备Bot的OAuth Token:确认你的Bot已拥有
chat:write权限,复制Bot的OAuth Token(格式为xoxb-xxxxxxxxx)。 - 执行API调用:使用以下curl命令发送私信,替换其中的Token和用户ID:
curl -X POST -H "Authorization: Bearer xoxb-你的BotOAuthToken" -H "Content-type: application/json" --data '{"channel":"UPeter的用户ID","text":"Hello, World!"}' https://slack.com/api/chat.postMessage
通过该方式发送的消息会直接进入Bot与Peter的独立私信会话,你作为管理员不会看到这条消息,仅Peter能在与Bot的私聊中接收。
内容的提问来源于stack exchange,提问作者FlamingMoe
相关产品推荐
相关产品推荐

