【发布时间】:2020-07-17 03:12:05
【问题描述】:
我正在为 Javascript/Bolt 中的 slack 构建一个斜杠命令( https://slack.dev/bolt/concepts)
它“有时”起作用,但并非总是如此:
- [x] 在公共频道中
- [ ] 在私人频道中
- [ ] 在直接消息中
我正在使用 bot 令牌 进行身份验证,但我很确定我遇到了一些身份验证权限问题。
我正在尝试使用:chat.postEphemeralslack api 向我的用户呈现交互式显示。
在 private 或 direct message 情况下,我的应用打印出 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
我的斜杠命令代码如下所示 - 基本上是对命令的简单回复:
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 Scope 中添加了每一个选项 - 似乎没有任何东西能满足我的要求。
1) 是否有可能在 Bolt 中实际编写一个有效的斜杠命令,该命令一直有效 2)是否可以仅使用 BOT 令牌来执行此操作,或者我是否需要使用用户令牌 3) 我还缺少什么?
谢谢
【问题讨论】:
-
我所期望的您的 channel_id 不可用。你能告诉我当你登录console.log(command)时记录了什么。在所有三种情况下。
-
@Jeef 你找到解决方案了吗?
标签: javascript node.js slack slack-api