使用 python 从 SlackClient 获取额外输入
Getting additional input from SlackClient using python
其中一个问题是我 运行 从 slack 中的命令获取额外数据。我️不想使用 Slash 命令,因为我不能将我的本地主机暴露给全世界。
示例:
@mybot do
Will return,比方说“我在做某事”。但是我️希望能够做类似
的事情
@mybot do 2
其中2是后端的一个参数。基本上我想要做的是将它放在用户可以说 @mybot do 2
的地方,它将从 ID 为 2 的数据库中获取数据。您可以将其设置为 3、4、5 等,命令将从数据库中提取信息。我已经找到了我可以使它匹配精确的“do”命令的地方,尽管我无法让它读取后续数据。 I️ 正在关注 this tutorial。任何帮助都会很棒。
if you see weird symbols it’s because I’m doing this from an iPhone and I️ have that stupid bug where the turns I️ (eye) into I️
如何获得"additional information"
您将在文本 属性 中获得完整的输入字符串,例如"do 2"
。您需要做的就是将字符串拆分为单词。我不是 Python 开发人员,但显然 split() 可以完成这项工作。
公开您的本地主机
我强烈建议您继续使用 VPN 隧道公开您的本地主机。它使开发变得如此容易。您可以使用 ngrok 将您的本地主机安全地暴露给 Slack。
"Dont want to use slash commands"
您始终需要在暴露的主机上安装一个应用程序(例如 Python 脚本),以便任何自定义功能与 Slack 一起使用。实际上,斜线命令比 Event API 和 RTM 更容易实现,因此我建议您使用它。
您需要使用正则表达式从文本中提取参数。我希望这会有所帮助。
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)
其中一个问题是我 运行 从 slack 中的命令获取额外数据。我️不想使用 Slash 命令,因为我不能将我的本地主机暴露给全世界。
示例:
@mybot do
Will return,比方说“我在做某事”。但是我️希望能够做类似
的事情@mybot do 2
其中2是后端的一个参数。基本上我想要做的是将它放在用户可以说 @mybot do 2
的地方,它将从 ID 为 2 的数据库中获取数据。您可以将其设置为 3、4、5 等,命令将从数据库中提取信息。我已经找到了我可以使它匹配精确的“do”命令的地方,尽管我无法让它读取后续数据。 I️ 正在关注 this tutorial。任何帮助都会很棒。
if you see weird symbols it’s because I’m doing this from an iPhone and I️ have that stupid bug where the turns I️ (eye) into I️
如何获得"additional information"
您将在文本 属性 中获得完整的输入字符串,例如"do 2"
。您需要做的就是将字符串拆分为单词。我不是 Python 开发人员,但显然 split() 可以完成这项工作。
公开您的本地主机
我强烈建议您继续使用 VPN 隧道公开您的本地主机。它使开发变得如此容易。您可以使用 ngrok 将您的本地主机安全地暴露给 Slack。
"Dont want to use slash commands"
您始终需要在暴露的主机上安装一个应用程序(例如 Python 脚本),以便任何自定义功能与 Slack 一起使用。实际上,斜线命令比 Event API 和 RTM 更容易实现,因此我建议您使用它。
您需要使用正则表达式从文本中提取参数。我希望这会有所帮助。
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)