从松弛机器人接收消息

Receive message from slack bot

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

client = SlackClient(API_TOKEN)

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

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

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

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

至于问题的第二部分,提及(例如 @bot)不是特殊事件,您必须检查每个传入事件以查看它是否是针对您的机器人的消息(请参阅此answer. One gotcha is you need to know the ID of your bot as the event will contain something like <@YOURBOTID> args 123. Finding the ID of your bot and other useful tips for building a python slack bot can be found in this article.

slack中的事件种类很多,如果已经被你的BOT订阅了,那么你的BOT一定会根据你的请求获得相关流量URL。

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

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