我对使用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);
有人可以帮我我在这里想念的吗?
- 我应何时使用“ Bot用户OAuth访问令牌”和“ OAuth访问令牌”?
- 什么是频道ID?
- APP ID是否称为频道ID?
预先感谢
答案 0 :(得分:1)
通常,您是使用bot令牌代表bot用户,以及使用用户令牌安装Slack应用程序的用户。
例如如果您的漫游器用户是该私有频道的成员,则只能使用您的漫游器令牌访问私有频道。因此,用户令牌使您可以访问该用户所属的所有私有频道。
此外,有些API方法无法与漫游器令牌一起使用,因此需要您使用用户令牌。 (检查documentation for each API method找出您需要的)。一般来说,我建议尽可能使用机器人令牌。
通道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的详细信息,请参见上面的部分。