从slack bot接收消息

时间:2017-01-21 02:08:47

标签: python slack

我对使用Python的Slack bot感到很困惑。我希望能够接收bot发送的消息:

client = SlackClient(API_TOKEN)

if client.rtm_connect():
    while True:
        print client.rtm_read()
        time.sleep(1)
else:
    print "Connection Failed, invalid token?"

然后我发送消息到我的机器人松弛。但我没有收到消息。如何开始向用户发送消息?

此外,是否可以在所有渠道中包含机器人?因此,如果我在任何频道,我希望能够说出@myBot args 123

2 个答案:

答案 0 :(得分:0)

Slack仅向加入频道的机器人发送事件,默认情况下,它们不会加入任何频道,只接收私人消息的事件。如果你邀请你的机器人到频道,那么Slack应该开始将频道从频道路由到它。

至于问题的第二部分,提及(例如,@bot)不是特殊事件,您必须检查每个传入事件,看它是否是针对您的机器人的消息(请参阅此{{ 3}}。一个问题是你需要知道机器人的ID,因为事件将包含类似<@YOURBOTID> args 123的内容。查找机器人的ID以及构建python slack bot的其他有用技巧可以在{ {3}}

答案 1 :(得分:0)

松弛中有很多类型的事件,如果它们已被您的BOT订阅,那么您的BOT肯定会在您的请求网址上获得相关的流量。

因此,如果您希望收到任何直接发送给BOT的消息,您必须订阅直接消息事件。

如果你希望你的BOT由@bot ...类型的消息触发,那么你需要订阅app_mention事件。如果BOT在任何组中被提及,它将收到流量,但它可以将消息发布到允许它的唯一组。