除了[消息]之外,如何调用Slack API中的任何其他事件?

问题描述 投票:0回答:1

我正在尝试在松弛的通道中制作一个机器人,这样我就能理解整个过程是如何工作的。我有两个问题。 [第一个问题解决]首先,我知道如果有人说了什么,如何发送消息,但我无法弄清楚如何检查具体说法。这是我的代码:

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。

python-3.x powershell web-applications slack-api
1个回答
0
投票

问题是我在if not message or not user: continue线下面有我的if 'hello' in message:线,所以它会因为任何其他正在发生的不是消息的事件而错误。第一期问题解决了

© www.soinside.com 2019 - 2024. All rights reserved.