小编tca*_*cas的帖子

Slack bot,注册点击消息按钮

我正在尝试用Python构建一个Slack bot.我希望我的机器人在其上发送带有交互式按钮的消息,然后根据用户点击该消息,在Python中运行一个函数.我似乎没有找到如何做到这一点.

我的代码现在看起来像这样:

message = "message"
attachments = [{"text": "message",
                "attachment_type": "default",
                "actions": [
                    {
                        "name": "list",
                        "text": "message",
                        "type": "select",
                        "options": [
                        {
                            "name": "1",
                            "text": "1",
                            "type": "button",
                            "value": "1"
                        },
                        {
                            "name": "1",
                            "text": "1",
                            "type": "button",
                            "value": "2"
                        }
                    ]}]}]

sc.api_call("chat.postMessage",
             channel=channel,
             text=message,
             attachments=attachments)
Run Code Online (Sandbox Code Playgroud)

所以这给了我一个带有两个按钮的消息.但是,我希望根据用户给出的答案运行一个函数.

所以说如果他们点击1,则运行function1(),当他们点击2时,运行function2().

Slack api文档对于如何执行此操作非常困惑,并且它们提供的"侦听器"rtm_read()不会选择用户单击其中一个按钮.

所以,如果有人能帮助我,我将不胜感激.

python slack-api

7
推荐指数
1
解决办法
1399
查看次数

Python:同时线程化多个无限循环

在 Python 中,我试图让一个无限循环同时开始并行运行,一个简单的例子是:

from threading import Thread

def func(argument):
    while True:
        print(argument)

def main():
    Thread(target=func("1")).start()
    Thread(target=func("2")).start()
    Thread(target=func("3")).start()
    Thread(target=func("4")).start()

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

现在只有第一个线程运行,所以结果是:

1
1
1
1
....
Run Code Online (Sandbox Code Playgroud)

它应该是:

1
2
3
4
....
Run Code Online (Sandbox Code Playgroud)

我发现了几个类似的问题,但提供的解决方案似乎都不适合我,包括join在线程上使用。

因此,如果有人知道我的问题的解决方案,将不胜感激。

提前致谢!

python multithreading

1
推荐指数
1
解决办法
2747
查看次数

标签 统计

python ×2

multithreading ×1

slack-api ×1