【发布时间】:2016-08-08 05:07:51
【问题描述】:
我正在尝试通过在用户安装 Slack 应用程序时创建一个安装斜线命令的 Slack 应用程序来扩展 Slack。当 Slack 聊天用户触发斜线命令时,将与我正在尝试开发的外部 Web 服务进行交互。
根据 Slash 命令的 Slack 文档 (https://api.slack.com/slash-commands),任何 Slash 命令都将触发对外部服务的 POST,其中包含 POST 正文中的一组参数,以指示用户、Slack 通道、等等,触发了请求。
当我使用 localtunnel (https://www.npmjs.com/package/localtunnel) 使我在 localhost 上开发的 Web 服务可用于 Internet 时,localtunnel 实际上会在 localtunnel.me 上创建一个具有一些随机主机名的虚拟服务器,例如,https://wkbtfodclm.localtunnel.me,它连接到我的本地主机。
如果我在我的 Slack 聊天中键入 Slash 命令,Slack 会成功向 localtunnel.me 服务器发送一个 POST 请求,该服务器通过管道传输到我的本地主机。
但是,在我部署到具有域(例如 https://example.com)的 Heroku 之后,我注意到 Slash 命令向 Heroku 上的服务器发送了一个不带参数的 GET 请求。有没有人经历过这种情况?
【问题讨论】:
-
这可能是 ssl 检查吗?见api.slack.com/slash-commands#ssl。 应该有一个参数
ssl_check=1,但根据文档,我希望它是一个查询参数(URL 的一部分)。这和你看到的相符吗? (查看完整的 HTTP 请求可能会有所帮助,包括完整的 URL 和标头。) -
谢谢。目前,当我在 Slack 上使用 Slash 命令时,它会联系 Slack 服务器(如预期的那样),但不是使用 POST 联系外部 Web 服务,而是使用 GET 联系它,但没有参数等。