在slack bot中是否有可能创建回到机器人的文本链接

时间:2017-04-27 07:39:24

标签: ruby bots slack-api slack

我已使用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 ...

这是否可以在松散的机器人中使用?

1 个答案:

答案 0 :(得分:0)

从技术上讲,可以提供调用这些“不同命令”的链接,但我相信有更好的解决方案。

您当然可以在响应中包含动态创建的HTML链接,并将它们连接到您的脚本,但该方法存在两个问题: 1)这些链接将始终是GET请求,因此这些链接中包括的所有上下文信息(例如用户ID)对用户是可见的。这可能是一个安全问题。关于此主题有一个完整的讨论,但一种解决方案可能是加密URL中的所有参数。 2)点击链接将始终打开一个浏览器窗口,需要用户再次手动关闭。这不一定是一个显示阻止,但它可能会混淆和/或惹恼一些用户。

由于这些问题,我建议采用另一种更安全,更友好的方法。

我建议不要提供链接,而是提供建议的“不同命令”列表,如message buttonsmessage menu

由于似乎有不少建议的“不同命令”,我相信所有“不同命令”的动态生成下拉列表最有效。