在 Slack 中获取 DM 消息的收件人

Get recipient of a DM message in Slack

我有一个 Slack 应用程序,它以适当的用户和机器人范围侦听 message 事件(该应用程序代表用户具有 im:readim:history 权限等).事件负载如下所示:

{"client_msg_id": "...", 
"type": "message", 
"text": "...", 
"user": "<sender id>", 
"ts": "...", 
"team": "...", 
"blocks": [...], 
"channel": "D012345678 <example direct channel id>", 
"event_ts": "...", 
"channel_type": "im"}

有没有办法识别此邮件的收件人 ID?

  1. 我查看了 conversations_members API 并使用了事件负载提供的 channel_id。它会引发 channel_not_found 错误。我尝试使用应用程序用户所在的实际私人频道进行硬编码测试,它按预期返回了用户 ID 列表。所以这个问题似乎与 DM 频道有关。
  2. 尝试使用用户 ID 而不是频道 ID 。也没用。

感谢任何帮助。

附加信息:

pip freeze | grep slack

slack-bolt==1.13.2
slack-sdk==3.16.1

对于面临相同问题的任何人,我请 SlackBolt 开发人员参与 here's their answer.。综上所述,问题中提到的conversation_members是正确的起点。但是,如果您的用户令牌和机器人令牌都具有 im:read 权限,则优先考虑机器人令牌。用用户令牌替换它,你应该没问题。更详尽的答案在讨论中 link.