我正在编写一个自定义松弛命令,该命令实现了像接口这样的任务管理器(我知道.有很多是:-),我与odesk/upwork的接口用于外包我的微任务:-) )。
无论如何,我非常喜欢/remind命令如何在其输出中包含完整的Delete链接,以便于随后与输入该命令的用户进行交互,并且我正在试图找出如何做同样的技巧。
到目前为止,我所想的是在我的输出中包含链接,这些链接是. GET /slack-link?method=POST&token=xxx&team_id=xx&command=.. (在其查询字符串中进行的),这是松弛从正常的自定义命令中产生的完整的json有效负载。slack-link充当一个“代理”,它的唯一作用是将一个帖子提交回我的正常松弛端点。我甚至可以为这些命令链接重用相同的response_url。
我还没有试过,但是我认为这些URL会打开另一个窗口,这样路径就不能正常工作了……
以前有人试过这样的东西吗?
发布于 2015-12-23 22:47:38
正如您所了解的,这些命令目前只适用于内置命令。但是,由于我很好奇,并且想知道这些是如何实现的,我查看了API,发现URL只是正常格式化,但是有一个特殊的“协议”:
You asked me to remind you to “test”.
_<slack-action://BSLACKBOT/reminders/complete/D01234567/1234//0/0/5678|Mark as complete>
or remind me later: <slack-action://BSLACKBOT/reminders/snooze/D01234567/1234//0/0/5678/15|15 mins> [...]单击这样的链接会产生对方法chat.action的API请求,其中包含以下参数:
bot: BSLACKBOT
payload: reminders/complete/D01234567/1234//0/0/5678
token: xoxs-tokenhere-nowayiampostingithere看起来这些URL有三个部分:
<slack-action://BSLACKBOT/reminders/complete/[...]|Mark as complete>slack-action://:类似于“协议”的前缀让斯拉克知道这是一个聊天动作网址。BSLACKBOT:哪个机器人(谁?)将收到有效载荷。只能是bot用户,并且ID必须以B开头,否则invalid_bot请求将失败。这实际上不是一个新特性,因为他们过去在2013年底或2014年初就有API URL(我不记得很清楚),是因为“安全原因”而删除的。
看看我们是否可以在自定义的机器人上使用聊天操作,如果可以的话,我们可以用它做些什么,这可能会很有趣。
发布于 2015-12-16 04:06:27
我从斯拉克支持处得到了答案:
关于您最初的问题:目前Slack没有提供在我们的自定义集成中嵌入“action”链接的能力。目前只有像/remind这样的内置特性才能利用这些特性。对于外部服务,您需要链接到在外部web浏览器中打开的URL。 我们希望为将来的定制集成提供类似的功能,允许交互消息。 谢谢, 本
https://stackoverflow.com/questions/33975024
复制相似问题