我已使用https://github.com/slack-ruby/slack-ruby-client
成功部署了一个松散的机器人我的机器人可以响应很长的命令列表。我想要一些命令将“链接”返回到另一个命令。
例如,我可能有类似的东西:
Me: Bot do_operation_one arguments=....
机器人将返回响应
Bot: "Result for operation one with arguments..."
然后我可能会将该响应链接到另一个命令,例如:
Bot do_operation_two arguments="Result_for_operation_one"
如果机器人可以返回带有指向其他操作的链接的结果会更方便,这些操作包含可以调用operation_two / operation_three等的必要参数,而无需键入它。
在我的特定情况下,我从我的机器人返回机器人的版本列表:
Me: bot list version
Bot: 1.0,1.1,1.2,1.3,.....
理想情况下,每个版本都可以在其上应用其他操作,使用版本作为参数:
Bot:
1.0: link_operation1, link_operation2, link_operation3 ...
1.1: link_operation1, link_operation2, link_operation3 ...
1.2: link_operation1, link_operation2, link_operation3 ...
这是否可以在松散的机器人中使用?
答案 0 :(得分:0)
从技术上讲,可以提供调用这些“不同命令”的链接,但我相信有更好的解决方案。
您当然可以在响应中包含动态创建的HTML链接,并将它们连接到您的脚本,但该方法存在两个问题: 1)这些链接将始终是GET请求,因此这些链接中包括的所有上下文信息(例如用户ID)对用户是可见的。这可能是一个安全问题。关于此主题有一个完整的讨论,但一种解决方案可能是加密URL中的所有参数。 2)点击链接将始终打开一个浏览器窗口,需要用户再次手动关闭。这不一定是一个显示阻止,但它可能会混淆和/或惹恼一些用户。
由于这些问题,我建议采用另一种更安全,更友好的方法。
我建议不要提供链接,而是提供建议的“不同命令”列表,如message buttons或message menu。
由于似乎有不少建议的“不同命令”,我相信所有“不同命令”的动态生成下拉列表最有效。