如何将Slack频道作为实时消息机器人用户加入?

时间:2015-03-27 19:52:34

标签: slack-api

对于僵尸程序用户,

channels.joinnot allowed。我希望我使用RTM的机器人能够收听机器人集成页面中列出的其他渠道。

我没有看到更改机器人集成页面中频道的方法:

bot integration page

这只是机器人的限制还是我错过了一些基本的东西?

3 个答案:

答案 0 :(得分:50)

我遇到了同样的问题,并且不确定为什么我的机器人只是听某些频道。

您的机器人需要被用户邀请到每个频道。在Slack应用程序中的所需通道内运行此命令

/invite @<your_bot_name>

一旦进入频道,他们就应该能够听取事件。

答案 1 :(得分:3)

截至2017年5月,由于它引入了一个错误,这仍然是机器人的限制 - 请参阅paulhammod在https://github.com/slackapi/node-slack-sdk/issues/26的回答。正如@MattGifford指出的那样,添加机器人的正确方法是斜杠命令/invite @<bot.user> <channel_name>

然而,@ anaf介绍了一个有趣的解决方法。如果您为自己的帐户生成个人API_TOKEN,则可以使用它来邀请机器人。 例如,在python中可以运行:

import slackclient sc = slackclient.SlackClient(<PERSONAL_API_TOKEN>) sc.api_call('channels.invite', channel=<channel_id>, user=<user_id>)

这将邀请机器人进入频道。如果您想自动邀请机器人进入新渠道,您可以在https://api.slack.com/rtm找到的API中查看事件监听器

只要您允许将API_TOKEN用于此目的,它似乎可以根据需要运行,尽管不太方便。

答案 2 :(得分:0)

我实际上没有尝试过这个,但我希望您可以先代表实际用户(例如您自己)拨打channels.join,然后拨打channels.invite作为该用户添加机器人到那个频道。我希望这是允许的,然后它将允许机器人与该频道进行交互。这样您就可以自动化所有内容。