我正在为Javascript / Bolt中的松弛构建斜线命令( https://slack.dev/bolt/concepts)
它“有时”有效,但并非总是如此:
我正在使用 bot令牌进行身份验证,但是我可以肯定我遇到了一些身份验证权限问题。
我正在尝试使用:chat.postEphemeral
slack api向我的用户展示交互式显示器。
在私人或直接消息的情况下,我的应用正在打印出channel_not_found
错误,我认为这是由于某些权限错误造成的
[DEBUG] WebClient:0 apiCall('chat.postEphemeral') start
[DEBUG] WebClient:0 will perform http request
[DEBUG] WebClient:0 http response received
[DEBUG] bolt-app An API error occurred: channel_not_found
当一切正常运行时,它看起来像这样:
[DEBUG] WebClient:0 apiCall('chat.postEphemeral') start
[DEBUG] WebClient:0 will perform http request
[DEBUG] WebClient:0 http response received
我的斜杠命令代码如下-基本是对命令hi的简单回复:
app.command("/wl", async ({
command,
ack
}) => {
console.log(command)
await ack()
channel_id = command.channel_id
user_id = command.user_id
await app.client.chat.postEphemeral({
token: BOT_TOKEN,
channel: channel_id,
user: user_id,
text: "hi"
});
});
我已经在OAUTH页面的Bot范围中添加了每个选项-似乎什么也没做。
1)是否有可能在曾经有效的螺栓中实际写入有效的斜杠命令 2)是否可以仅使用BOT令牌来完成此操作,还是我需要使用用户令牌? 3)我还想念什么?
谢谢
答案 0 :(得分:0)
我遇到了同样的问题。 帮助我的是从这个命令中获取 user_id:
const result = await app.client.users.list({
token: process.env.SLACK_BOT_TOKEN
});
console.log(result);
结果对象将包含所有用户的数组 - 从那里获取 id。
为了允许它,请确保您在 Oauth 范围内激活了 users:read
。
最终,这有助于我为用户发送 DM。
答案 1 :(得分:0)
您收到此错误 Error: An API error occurred: channel_not_found
的一种情况是当您尝试向未邀请您的私人频道发送消息时。
尝试将您的机器人添加/邀请到您要发送消息的私人频道
注意:检查是否附加了相关范围。
谢谢