如何通过user.id作为应用程序将松弛的消息直接发送给用户。
此应用程序具有范围:bot,channels:write,emoji:read,users:read,users:read.email
我发现如何仅以DM或webhooks的形式发送消息,但没有范围。有人有想法吗?
答案 0 :(得分:15)
如果我理解您的问题,您希望在应用渠道中向用户发送直接消息,而不是标准的slackbot
渠道。
为了做到这一点,你需要
bot
范围和僵尸用户im.open
的用户从您的应用中打开直接消息频道。您将获得直接消息ID。 chat.postMessage
向直接消息通道ID 确保使用Slack应用中的机器人访问令牌(而不是用户访问令牌)。
bot
范围为您提供了从机器人频道向用户打开和发送DM所需的所有权限。不需要其他范围。
您还可以使用适用于所有类型的渠道类型的新conversations
方法。
另请参阅this question同一主题。
答案 1 :(得分:5)
有另一种方法可以解决此问题,如果您的应用程序使用机器人与Slack API配合使用,则该方法更合适。
您需要调用chat.postMessage API方法,并指定等于要发送消息的用户ID的channel
参数,例如U0G9QF9C6
为true。
重要细节-确保您正在使用漫游器访问令牌(了解here的获取方式)。
示例:
as_user
通过这种方式,您的消息将始终以机器人的名义(名称和图标)发送,并在应用程序通道(Slack侧栏中的YourAppChannel)中像直接消息一样显示。
与@ErikKalkoken的方法相比,您无需提前创建频道,因此,请跟踪其ID(根据您的需要而定是好是坏)。