javascript - 在bolt / nodeJS api中编写一个斜杠命令
问题描述
我正在为 Javascript/Bolt 中的 slack 构建一个斜杠命令( https://slack.dev/bolt/concepts)
它“有时”有效,但并非总是如此:
- [x] 在公共频道中
- [ ] 在私人频道中
- [ ] 在直接消息中
我正在使用机器人令牌进行身份验证,但我很确定我遇到了一些身份验证权限问题。
我正在尝试使用: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
我的斜杠命令代码如下所示 - 基本上是对命令的简单回复:
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) 我还缺少什么?
谢谢
解决方案
您收到此错误的一种情况Error: An API error occurred: channel_not_found
是当您尝试向未邀请您的私人频道发送消息时。
尝试将您的机器人添加/邀请到您要发送消息的私人频道
注:检查是否附上相关范围。
谢谢
推荐阅读
- iis - 处理 IIS 低级错误
- android - 注册 2 个活动以接收图像,从 Google 相册应用共享时不起作用
- c# - C# string.split 从 IBM Emulator 中提取时会逐字母拆分
- sql - SQL 将 Pivot 结果转换为 H:mm:ss
- cuda - 使用没有 .cu 扩展名的 Clang 编译 Cuda
- c# - 使用 linq c# 透视表结果
- android - DialogFragment 的生命周期是什么
- selenium - 使用 Singleton 与多个浏览器并行执行的问题?
- java - 什么可能导致软件在更好的硬件上运行更慢?
- html - 将 CSS 应用于具有多个类的 div