Why chat.postEphemeral returns error channel_not_found if for direct message channel?
我正在构建一个 Slack 应用程序,如果用户在任何地方使用我的自定义斜杠命令,它会向他们显示一条临时消息:直接消息、公共频道或私人频道。
这一切都适用于公共频道和私人频道(邀请机器人),但是当请求来自直接消息频道(用户在直接消息频道中向另一个用户输入内容)时,我收到错误:channel_not_found .
我是否缺少任何应用权限或 chat.postEphemeral 不适用于直接消息渠道?
在文档中是 chat.postEphemeral 在私人对话中起作用的信息。
这是来自直接消息通道的响应(用户写给另一个用户):
1 2 3 4 5 6 7 8 9 10 11 12 13 | { token: 'myValidToken', team_id: 'TG8HU58EM', team_domain: 'Test', channel_id: 'DGE085TRH', channel_name: 'directmessage', user_id: 'UG1TR625J', user_name: 'test.user', command: '/my-command', text: 'help', response_url: 'https://hooks.slack.com/commands/TG8HU58EM/459862138745/VvhWfjkzqj41g21MZnQnJh8J', trigger_id: '459862138745.76621584642.5dc0055d2dd61c155fd1cd1c163df5a5' } |
机器人作用域:
机器人范围
您的机器人用户需要成为每个非公共频道的成员才能发布消息。这包括直接消息渠道。所以如果例如用户 A 与用户 B 有直接对话,您的机器人用户显然不是该频道的一部分。因此,您的机器人收到错误。
该方法适用于直接消息渠道,但仅适用于您的机器人用户与其他人的直接对话。
如果您希望您的应用可以在所有渠道中运行,您可能需要考虑切换到斜杠命令。这些也适用于任何直接消息渠道。