首页 > 解决方案 > 在bolt / nodeJS api中编写一个斜杠命令

问题描述

我正在为 Javascript/Bolt 中的 slack 构建一个斜杠命令( https://slack.dev/bolt/concepts

它“有时”有效,但并非总是如此:

我正在使用机器人令牌进行身份验证,但我很确定我遇到了一些身份验证权限问题。

我正在尝试使用: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) 我还缺少什么?

谢谢

标签: javascriptnode.jsslackslack-api

解决方案


您收到此错误的一种情况Error: An API error occurred: channel_not_found是当您尝试向未邀请您的私人频道发送消息时。

尝试将您的机器人添加/邀请到您要发送消息的私人频道

注:检查是否附上相关范围。

谢谢


推荐阅读