如果对于直接消息通道,为什么chat.postEphemeral返回错误channel_not_found?

时间:2019-05-13 07:25:25

标签: slack slack-api slack-commands

我正在构建一个Slack应用程序,如果用户在任何地方(无论是直接消息,公共频道还是私人频道)使用我的自定义斜杠命令,都会向用户显示短暂消息。

这一切都可以在公共频道和私人频道(邀请漫游器的地方)上进行,但是当请求来自直接消息频道(用户在直接消息频道中向另一个用户键入内容)时,我会收到错误消息:channel_not_found

我是否缺少任何应用程序权限或chat.postEphemeral对直接消息通道无效?

documentation中的信息是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' }

机器人的作用域: bot scopes

1 个答案:

答案 0 :(得分:0)

您的漫游器用户必须是每个非公开渠道的成员才能发布消息。这包括直接消息通道。所以如果用户A与用户B有直接对话,您的漫游器用户显然不属于该渠道。因此,您的漫游器会收到错误消息。

该方法将在直接消息通道中起作用,但仅用于您的bot用户与他人的直接对话。

如果您希望您的应用在所有渠道上都能正常工作,则可能需要考虑切换到斜杠命令。这些也可以在任何直接消息渠道中使用。