我遇到的一个问题是从松弛的命令中获取额外的数据。 I️不想使用Slash命令,因为I️无法将我的localhost暴露给全世界。
示例:
@mybot do
会回来,让我们说“我正在做点什么”。然而,I️希望能够做类似
的事情@mybot do 2
其中2是后端的参数。基本上我要做的就是让用户可以说@mybot do 2
并且它将从ID为2的数据库中获取数据。你可以将它设为3,4,5等命令将从数据库中提取信息。 I️已经发现I️可以使它与确切的“do”命令相匹配,尽管I️无法让它读取后续数据。 I️跟随this tutorial。任何帮助都会很棒。
如果你看到奇怪的符号,那是因为我是从iPhone那里做的,I️有那个愚蠢的错误,I️(眼睛)转向I️
答案 0 :(得分:0)
如何获取“其他信息”
您将在text属性中获得完整的输入字符串,例如"do 2"
。您需要做的就是将字符串拆分为单词。我不是Python开发人员,但显然split()将完成这项工作。
公开您的本地主机
我强烈建议您继续使用VPN隧道展示您的localhost。它使开发变得更加容易。您可以使用ngrok将本地主机安全地暴露给Slack。
“不想使用斜线命令”
您将始终需要在公开主机上使用应用程序(例如Python脚本),以获得与Slack一起使用的任何自定义功能。实际上,斜杠命令比事件API和RTM更容易实现,因此我建议您使用它。
答案 1 :(得分:0)
您需要使用正则表达式从文本中提取参数。我希望这会有所帮助。
import re
def handle_command(command, channel):
response = "Not sure what you mean. Use the *" + EXAMPLE_COMMAND + \
"* command with numbers, delimited by spaces."
match = re.match("do (?P<arg>\S+)", command)
if match:
arg = match.groupdict('arg')
response = "Wow! My argument is: " + arg
slack_client.api_call("chat.postMessage", channel=channel,
text=response, as_user=True)