Slack机器人可以与另一个机器人交互并在通道中触发它的某些功能吗?

时间:2017-08-09 05:55:56

标签: python bots slack slack-api

我构建了一个Slack机器人并尝试让我的机器人与另一个机器人在一个频道中进行交互,但它似乎无法正常工作。

例如,我想使用Polly(Slack bot)的投票功能。

像我这样的普通用户发送 / polly"哪个更好?" "炸玉米饼" " Pizza" 消息和Polly将在频道中创建Slack投票。但是当我让我的机器人在相同的通道中发送相同的消息时(我使用python-slackclient和chat.postMessage方法),消息就像一个简单的文本,换句话说,它没有触发Polly。

因此,在一个频道中,Slack机器人如何与另一个机器人交互并触发它的某些功能? 有人做过这样的事吗?

更新

https://github.com/ErikKalkoken/slackApiDoc/blob/master/chat.command.md

我试过这个方法,但又遇到了另一个问题......

错误消息是

{'error': 'missing_scope',
 'needed': 'post',
 'ok': False,
 'provided': 'identify,bot:basic'}

Oauth令牌需要" post"范围,但官方文件显示" post"范围已弃用。如何让我的令牌发布" post"范围?

2 个答案:

答案 0 :(得分:0)

我试图让两个机器人互动并且没有找到它工作。 Slack以某种方式识别消息的来源,如果消息是由机器人或应用程序发送的,则它无法响应它。我甚至试图通过松弛的API将消息作为用户发布,但是没有让它工作。 但是,Bots可以使用chat.command方法来调用斜杠命令。 非官方文档可以在这里找到:

https://github.com/ErikKalkoken/slackApiDoc/blob/master/chat.command.md

答案 1 :(得分:0)

您是正确的,未记录的chat.command要求post范围有效,这在标准OAuth流程中不可用(例如,您无法在Slack应用配置网站上选择它作为范围。 )

我所知道的唯一使用legacy令牌的解决方案。

另见this答案。