Node-slack web api:chat.delete为所有频道返回channel_not_found,尽管channels.list返回所有频道

时间:2018-01-05 18:22:49

标签: javascript node.js slack-api botkit

我一直在使用slack-node web api和botkit开发一个简单的聊天机器人,但是使用chat.delete功能时遇到了一些麻烦。我可以正确列出我的所有频道,查看他们的频道ID和名称,但是当我尝试使用chat.delete函数发送消息频道时,它会返回“channel_not_found”。

我还尝试发送频道名称,使用“常规”和我定位的实际频道名称进行测试,两者都返回相同的错误。

我的机器人正在使用管理员用户的令牌,这应该允许删除任何消息。我的机器人有聊天范围访问权限:写:机器人和聊天:写:用户也是。

下面是我的代码片段 - 我也在其他地方尝试过删除直接从机器人发送的消息并得到相同的错误,所以我不认为它与权限有关。我已经查看了文档,并且对于我下面的内容似乎是正确的,但我可能会错过一篇文章。

controller.on('ambient', function(bot, message) {

      web.channels.list().then((res) => {
        console.log(res); // this prints out all of the channels
        // listed channels show a match for the channel ID given in message.channel
      });

      // this call returns an error "error: Response not OK:  channel_not_found"
      web.chat.delete(message.channel, message.ts).then((res) => {

         console.log(res + " was deleted bc it was not tagged");

      }).catch((err) => { console.log(err) });
});

1 个答案:

答案 0 :(得分:2)

文档在这方面有点混乱,但官方@ slack / client库的chat.delete方法以不同的顺序获取参数:

您希望将代码更改为:

web.chat.delete(message.ts, message.chanel).then(...)

看这里: https://slackapi.github.io/node-slack-sdk/reference/ChatFacet#ChatFacet+delete