Slack API - 向个人空间(您)发送直接消息

Posted

技术标签:

【中文标题】Slack API - 向个人空间(您)发送直接消息【英文标题】:Slack API - Sending a direct message to personal space (you) 【发布时间】:2019-11-04 04:48:30 【问题描述】:

我用机器人创建了一个 Slack 应用。我让 OAuth 流程正常工作。用户完成 OAuth 过程,我得到了常规令牌和机器人令牌以及 user_id。

当我尝试发送从 OAuth 收到的带有机器人令牌和 channel = user_id 的 api/chat.postMessage 时,会在“Slackbot”下创建一条消息。

如何向授权 OAuth 的用户发送直接消息?我想要它在(你)私人/个人 DM 空间下。

编辑:

im.open 在机器人和授权用户之间创建一个新通道。它不会直接在用户(您)的私人空间中发布消息。

【问题讨论】:

How to send direct messages to a user as app in app channel的可能重复 @ErikKalkoken 我添加了一个编辑来解释你可能重复引用的区别。该帖子的解决方案与我的要求不同。 感谢您的澄清。这确实是一个不同的问题。我会发布答案 【参考方案1】:

您可以通过以下方式将消息发送到您自己的个人用户频道 - 例如。对我来说,它的频道将被称为“Erik Kalkoken(你)”:

使用chat.postMessage发送消息

使用访问令牌(不是机器人令牌) 使用用户 ID 设置频道。必须是对访问令牌进行身份验证的同一用户 设置as_user = true

显然,这仅在您的应用具有由要向其发送消息的特定用户授权的令牌时才有效。因此,除非您从工作区中的所有用户那里收集令牌,否则这只适用于安装/验证您的应用的用户。

【讨论】:

以上是关于Slack API - 向个人空间(您)发送直接消息的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 BotKit 从 Slack API 获取用户列表?

通过Slack API发送命令

从 Prometheus helm 图表向 slack 发送警报

如何将 Slack 机器人扩展到 1000 个团队

Prometheus alertmanager 向多个 slack 通道发送通知

zapier 无法发送挑战值以启用 slack 事件 api