节点js-Slack API集成-错误:发生API错误:channel_not_found

时间:2018-11-28 12:31:20

标签: node.js slack slack-api slack-commands

我对使用node js进行松弛api集成非常陌生。我正在尝试获取频道历史记录。即使我尝试使用chat.postMessage。但这每次都使我以下错误:

{ Error: An API error occurred: channel_not_found
at platformErrorFromResult (..\node_modules\@slack\client\dist\WebClient.js:747:42)
    at __await.makeRequest.then (..\node_modules\@slack\client\dist\WebClient.js:464:39)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)   
code: 'slackclient_platform_error',   
data:    
{ ok: false,
     error: 'channel_not_found',
     scopes:
      [ 'identify',
        'bot',
        'commands',
        'channels:history',
        'chat:write:user',
        'chat:write:bot' ],
     acceptedScopes: [ 'channels:history' ]*** } }

这是我的代码段

    const { WebClient } = require('@slack/client');

    const token = "OAuth Access Token"; // passing OAuth Access Token
    const web = new WebClient(token);

    web.channels.history({ channel: appID})
        .then((res) => {
            console.log('Message sent: ', res.ts);
        })
        .catch(console.error);

有人可以帮我我在这里想念的吗?

  
      
  1. 我应何时使用“ Bot用户OAuth访问令牌”和“ OAuth访问令牌”?
  2.   
  3. 什么是频道ID?
  4.   
  5. APP ID是否称为频道ID?
  6.   

预先感谢

1 个答案:

答案 0 :(得分:1)

自动令牌与用户令牌

通常,您是使用bot令牌代表bot用户,以及使用用户令牌安装Slack应用程序的用户。

例如如果您的漫游器用户是该私有频道的成员,则只能使用您的漫游器令牌访问私有频道。因此,用户令牌使您可以访问该用户所属的所有私有频道。

此外,有些API方法无法与漫游器令牌一起使用,因此需要您使用用户令牌。 (检查documentation for each API method找出您需要的)。一般来说,我建议尽可能使用机器人令牌。

频道ID

通道ID是通道的ID,对于您的工作空间是唯一的。通常,Slack工作区中的所有对象(例如,用户,通道,文件,应用,消息)都有各自的ID,并且大多数API方法都要求您使用该ID才能访问对象。

要获取对象的ID,可以使用大多数对象都存在的相应列表API方法。例如对于频道,请致电channels.list,然后在列表中查找所需频道的ID(例如,通过比较频道名称)。

专业提示:您可以直接从浏览器中调用大多数API方法,如果您只是想快速找到ID,这将非常方便。例如https://slack.com/api/channels.list?token=TOKEN获取频道列表。

应用程序ID与渠道ID

不。应用程序ID和频道ID是不同的ID,彼此无关。有关如何获取频道ID的详细信息,请参见上面的部分。