1

我对使用节点 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 User OAuth Access Token”和“OAuth Access Token”?
  2. 什么是频道 ID?
  3. APP ID是不是叫频道ID?

提前致谢

4

1 回答 1

5

机器人令牌与用户令牌

通常,您使用机器人令牌代表您的机器人用户,并使用用户令牌代表安装您的 Slack 应用程序的用户。

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

此外,还有一些 API 方法不适用于机器人令牌,因此需要您使用用户令牌。(查看每个 API 方法的文档以找出您需要的方法)。一般来说,我建议尽可能坚持使用机器人令牌。

频道 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 的详细信息,请参阅上面的部分。

于 2018-11-28T17:23:40.580 回答