我正在尝试用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 中,我试图让一个无限循环同时开始并行运行,一个简单的例子是:
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在线程上使用。
因此,如果有人知道我的问题的解决方案,将不胜感激。
提前致谢!