我对使用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
答案 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在任何组中被提及,它将收到流量,但它可以将消息发布到允许它的唯一组。