除了[消息]之外,如何调用Slack API中的任何其他事件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了除了[消息]之外,如何调用Slack API中的任何其他事件?相关的知识,希望对你有一定的参考价值。
我正在尝试在松弛的通道中制作一个机器人,这样我就能理解整个过程是如何工作的。我有两个问题。 [第一个问题解决]首先,我知道如果有人说了什么,如何发送消息,但我无法弄清楚如何检查具体说法。这是我的代码:
import os
import time
from slackclient import SlackClient
BOT_TOKEN = os.getenv('SLACK_BOT_USER_TOKEN')
print(BOT_TOKEN)
CH_NM = "bot_testing"
def main():
sc = SlackClient(BOT_TOKEN)
SM = sc.rtm_send_message
if sc.rtm_connect():
print("Bot running")
SM(CH_NM, "Started")
while True:
for slack_message in sc.rtm_read():
message = slack_message.get("text")
user = slack_message.get("user")
if 'hello' in message:
SM(CH_NM, "Hey, <@{}>!".format(user))
if not message or not user:
continue
SM(CH_NM, """<@{}> wrote something...""".format(user))
time.sleep(.5)
if __name__ == '__main__':
main()
我遇到麻烦的主线是
if 'hello' in message:
SM(CH_NM, "Hey, <@{}>!".format(user))
因为我不能遍历'message',因为它是'NoneType'。那我怎么去检查它是否包含一个特定的字符串?
第二个问题,我看到有各种各样的事件类型,但我的似乎只适用于“消息”类型的事件。如果我想在每次特定用户开始输入时返回一些内容,例如我将添加什么来使其工作?我已经尝试添加typing = slack_message.get(“user_typing”),但可以理解的是它不起作用,因为'user_typing'是一个事件类型,而不是消息事件类型的一部分我正在拉'text'和'user' 。
所以你知道,我正在使用python 3.6,Windows 10,PowerShell。
答案
问题是我在if not message or not user: continue
线下面有我的if 'hello' in message:
线,所以它会因为任何其他正在发生的不是消息的事件而错误。第一期问题解决了
以上是关于除了[消息]之外,如何调用Slack API中的任何其他事件?的主要内容,如果未能解决你的问题,请参考以下文章