【问题标题】:How to call any other event in the Slack API besides [message]?除了 [message] 之外,如何调用 Slack API 中的任何其他事件?
【发布时间】:2017-12-28 06:59:24
【问题描述】:

我正在尝试在 slack 频道中制作一个机器人,以便了解整个过程是如何工作的。我有 2 个问题。 [第一个问题已解决]首先,我知道如何发送消息 if 有人说 anything 但我不知道如何检查具体说了什么。这是我的代码:

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))

因为我无法遍历“消息”,因为它是“NoneType”。那么我将如何检查它是否包含特定的字符串?

第二个问题,我看到有各种各样的事件类型,但我的似乎只适用于“消息”类型的事件。如果我想在每次特定用户开始输入时返回一些东西,例如,我会添加什么来使它工作?我已经尝试添加 typing = slack_message.get("user_typing") 但可以理解的是它不起作用,因为 'user_typing' 是一种事件类型,而不是我要从中提取 'text' 和 'user' 的消息事件类型的一部分.

所以你知道,我使用的是 python 3.6、Windows 10、powershell。

【问题讨论】:

  • 请不要将[SOLVED]之类的标签放在您的问题主题中。如果答案解决了您的问题:考虑accepting it。另外,请不要一次问多个问题。如果您有多个问题:将它们作为单独的问题发布。
  • 我肯定会这样做,但是如果我终于能够偶然发现自己问题的答案,并且两天不能接受该答案,您是否建议将其保留那2天?我没关系,我只是想澄清一下。
  • 这取决于。如果某个问题(以及您的答案)可能使其他用户受益(即,如果其他用户有可能遇到同样的问题):请保留您的问题并在 2 天后接受您自己的答案。如果您的问题非常特殊,以至于其他人不太可能遇到同样的问题,或者您甚至无法再重现您的问题,那么最好删除该问题。

标签: python-3.x powershell web-applications slack-api


【解决方案1】:

问题是我的if not message or not user: continue 行低于if 'hello' in message: 行,因此它会由于发生的任何其他事件而不是消息而出错。第一个问题已解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-20
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    相关资源
    最近更新 更多