关于 slack:为什么 chat.postEphemeral 返回错误 channel_not_found 如果用于直接消息通道?

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 有直接对话,您的机器人用户显然不是该频道的一部分。因此,您的机器人收到错误。

该方法适用于直接消息渠道,但仅适用于您的机器人用户与其他人的直接对话。

如果您希望您的应用可以在所有渠道中运行,您可能需要考虑切换到斜杠命令。这些也适用于任何直接消息渠道。