我的松弛自定义命令如何产生/提醒我像链接

时间:2015-11-28 18:40:54

标签: slack-api slack

我正在编写一个实现自定义的自定义slack命令 任务管理器喜欢界面(我知道......那里有很多:-),我的界面与odesk / upwork外包我的微任务:-))。

无论如何,我非常喜欢/ remind命令在其输出中包含完全删除等链接,以方便后续与输入命令的用户交互,我试图找出如何做同样的技巧。

到目前为止,我所想到的是在我的输出中包含链接... GET /slack-link?method=POST&token=xxx&team_id=xx&command=..,即在其查询字符串中包含松弛将从正常自定义命令产生的完整json有效负载。 slack-link充当“代理”,其唯一作用是将POST提交回正常的松弛端点。我甚至可以为这些命令链重用相同的response_url。

我没有尝试过,但我认为这些网址只会打开另一个窗口,以便路径不会正常工作......

有人曾尝试过这样的事吗?

2 个答案:

答案 0 :(得分:4)

如您所知,这些目前仅适用于内置命令。但是,由于我很好奇并想知道这些是如何完成的,我查看了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

所以看起来这些网址有三个部分:

<slack-action://BSLACKBOT/reminders/complete/[...]|Mark as complete>
  1. slack-action://:“协议”之类的前缀让Slack知道这是一个聊天动作网址。
  2. BSLACKBOT:机器人(谁?)将收到有效载荷。只能是僵尸程序用户且ID必须以B开头,否则API请求将失败并显示invalid_bot
  3. URL的其余部分:传递给bot的有效负载。它似乎不是由Slack解析或处理的。
  4. 这实际上不是一个新功能,因为他们过去曾在2013年末或2014年初(我不记得确切)提供API网址,因为“出于安全考虑”而删除了这些网址。

    看看我们是否可以使用自定义机器人的聊天操作可能会很有趣,如果可以,我们可以用它来做什么。

答案 1 :(得分:3)

我得到了Slack支持的答案:

  

关于你原来的问题:目前Slack没有提供   能够在我们的自定义集成中嵌入“动作”链接。只要   像/ remind这样的内置功能目前可以利用这些功能。对于   外部服务,您需要链接到在中打开的URL   外部网络浏览器。

     

我们希望为自定义集成提供类似的功能   未来,允许互动信息。

     

谢谢,