1

我正在构建一个 Slack 应用程序,如果他们在任何地方使用我的自定义斜杠命令,它会向用户显示一条短暂的消息:直接消息、公共频道或私人频道。

这一切都适用于公共频道和私人频道(邀请机器人),但是当请求来自直接消息频道(用户在直接消息频道中向另一个用户输入内容)时,我收到错误:channel_not_found。

我是否缺少任何应用权限或 chat.postEphemeral 不适用于直接消息渠道?

文档中包含 chat.postEphemeral 在私人对话中工作的信息。

这是来自直接消息通道的响应(用户写给另一个用户):

{ 
  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' }

机器人作用域: 机器人作用域

4

1 回答 1

2

您的机器人用户需要成为每个非公共频道的成员才能发布消息。这包括直接消息渠道。因此,如果例如用户 A 与用户 B 直接对话,您的机器人用户显然不是该频道的一部分。因此,您的机器人会收到错误。

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

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

于 2019-05-13T12:56:48.623 回答