我正在使用 slack apis 来创建集成。我能够成功地创建一个松弛通道
this.http.post(slackApiHost + '/channels.create', payload, {headers: headers})
.subscribe(
res => {
console.log(res);
resolve(res)
},
err => {
console.log('error:' + err)
}
)
})
Run Code Online (Sandbox Code Playgroud)
有效载荷看起来像
var payload = {
"name" : channelName
};
Run Code Online (Sandbox Code Playgroud)
因此,如果频道已经存在,它将失败并显示 name_taken。这很棒。但是,我需要找到现有频道的频道 ID,以便我可以将其用于我的目的。我该怎么做?
要获取所有现有频道的列表,您可以使用conversations.list
. 这是最灵活的方法,允许您根据需要检索任何类型的频道。
如果您正在寻找特定名称的频道,您需要首先检索所有频道的列表,然后根据完整列表运行您自己的名称匹配。不存在可让您直接按名称搜索频道的 API 方法。
请注意,如果您正在寻找私人频道,此方法将仅检索您(您的 Slack 应用程序的安装程序/您的机器人用户)已被邀请加入的频道。
目前没有直接的 Slack API 可以通过名称查找 Slack 通道。但你可以使用conversations.list来处理这个问题,这里是正确的代码:
\nconst slack = new SlackWebClient(token);\nconst channelNameToFind = "test";\n\nfor await (const page of slack.paginate("conversations.list", {\n limit: 50,\n})) {\n for (const channel of page.channels) {\n if (channel.name === channelNameToFind) {\n console.log(`Found ${channelNameToFind} with slack id ${channel.id}`);\n break;\n }\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n这是执行此操作的正确方法\xe2\x84\xa2\xef\xb8\x8f,因为它将确保您在找到正确的频道后立即停止列出频道。
\n祝你好运!
\n 归档时间: |
|
查看次数: |
5790 次 |
最近记录: |