我正在编写一个自定义松弛命令,它实现了一个像界面一样的任务管理器(我知道......那里有很多:-),我的接口有odesk/upwork来外包我的微任务:-)).
无论如何,我非常喜欢/ remind命令在其输出中包含完全删除等链接,以方便后续与输入命令的用户交互,我试图弄清楚如何做同样的技巧.
到目前为止,我所想到的是在我的输出中包含链接... GET /slack-link?method=POST&token=xxx&team_id=xx&command=..
即在其查询字符串中携带完全json有效负载,松弛将从正常的自定义命令产生.slack-link
充当"代理",其唯一的作用是将POST提交回我的正常松弛端点.我甚至可以为这些命令链重用相同的response_url.
我没有尝试过,但我认为这些网址只会打开另一个窗口,以便路径不会正常工作......
以前有人试过这样的事吗?
正如您所知,这些目前仅适用于内置命令。然而,由于我很好奇并想知道这些是如何完成的,我查看了 API,发现 URL 只是正常格式化,但有一个特殊的“协议”:
\n\nYou asked me to remind you to \xe2\x80\x9ctest\xe2\x80\x9d.\n\xe2\x80\x8b_<slack-action://BSLACKBOT/reminders/complete/D01234567/1234//0/0/5678|Mark as complete>\nor remind me later: <slack-action://BSLACKBOT/reminders/snooze/D01234567/1234//0/0/5678/15|15 mins> [...]\n
Run Code Online (Sandbox Code Playgroud)\n\n单击此类链接会产生对 method 的 API 请求chat.action
,其中包含以下参数:
bot: BSLACKBOT\npayload: reminders/complete/D01234567/1234//0/0/5678\ntoken: xoxs-tokenhere-nowayiampostingithere\n
Run Code Online (Sandbox Code Playgroud)\n\n所以看起来这些 URL 分为三个部分:
\n\n<slack-action://BSLACKBOT/reminders/complete/[...]|Mark as complete>\n
Run Code Online (Sandbox Code Playgroud)\n\nslack-action://
:类似于“协议”的前缀,让 Slack 知道这是一个聊天操作 URL。BSLACKBOT
:将接收有效负载的机器人(谁?)。只能是机器人用户且ID必须以B开头,否则API请求将失败并显示invalid_bot
.这实际上不是一个新功能,因为他们在 2013 年底或 2014 年初就曾经拥有过 API URL(我记不太清了),但出于“安全原因”,他们将其删除。
\n\n看看我们是否可以将聊天操作与自定义机器人一起使用,如果可以,我们可以用它做什么,这可能会很有趣。
\n 归档时间: |
|
查看次数: |
1255 次 |
最近记录: |