我正在构建一个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
答案 0 :(得分:0)
您的漫游器用户必须是每个非公开渠道的成员才能发布消息。这包括直接消息通道。所以如果用户A与用户B有直接对话,您的漫游器用户显然不属于该渠道。因此,您的漫游器会收到错误消息。
该方法将在直接消息通道中起作用,但仅用于您的bot用户与他人的直接对话。
如果您希望您的应用在所有渠道上都能正常工作,则可能需要考虑切换到斜杠命令。这些也可以在任何直接消息渠道中使用。