作者:yuanyuan | 来源:互联网 | 2023-01-05 15:13
如何通过user.id作为应用程序直接向用户发送消息.
![在此输入图像描述](https://img.php1.cn/3cd4a/1eebe/cd5/60405fda58cd0acd.webp)
这个应用程序的范围:bot,channels:write,emoji:read,users:read,users:read.email
我发现如何只发送消息作为DM或webhooks,但没有范围.有谁有想法?
1> Erik Kalkoke..:
如果我正确理解您的问题,您希望在应用渠道而不是标准slackbot
渠道中向用户发送直接消息.
为了做到这一点,你需要
您的应用需要bot
范围和机器人用户
使用该用户,从您的应用中打开直接消息频道im.open
.您将获得直接消息ID.
发送带有chat.postMessage
直接消息通道ID的消息
确保使用Slack应用程序中的机器人访问令牌(不是用户访问令牌).
该bot
范围使您能够打开并从你的机器人通道的DM发送给用户所需的所有权限.不需要其他范围.
您还可以使用conversations
适用于所有类型的通道类型的新方法.
关于同一主题,请参阅此问题.
2> 小智..:
有另一种方法可以解决此问题,如果您的应用程序使用机器人来与Slack API配合使用,则可能更适合。
您需要调用chat.postMessage API方法,并指定channel
等于U0G9QF9C6
要发送消息的用户ID(例如)的as_user
参数,并且参数为true。重要细节-确保您正在使用漫游器访问令牌(在此处了解如何获取它)。
例:
curl -X POST "https://slack.com/api/chat.postMessage" -H "accept: application/json" -d token=BOT_ACCESS_TOKEN -d channel=U0G9QF3C6 -d text=Hello -d as_user=true
这样,您的消息将始终以机器人的名义(名称和图标)发送,并在应用程序通道(Slack侧栏中的YourAppChannel)中像直接消息一样显示。
与@ErikKalkoken的方法相比,您无需提前创建频道,因此,请跟踪其ID(根据您的需要而定,可能是好是坏)。