我正在尝试通过创建一个Slack App来扩展Slack,该应用程序在用户安装Slack App时安装Slash命令。 Slack聊天用户触发时的斜线命令将与我正在尝试开发的外部Web服务进行交互。
根据Slash Commands(https://api.slack.com/slash-commands)的Slack文档,任何Slash命令都会使用POST主体中的一组参数触发对外部服务的POST,以指示用户,Slack等触发请求的频道等。
当我创建Web服务时,我正在使用localtunnel(https://www.npmjs.com/package/localtunnel)在Internet上使用localhost进行开发,localtunnel实际上在localtunnel.me
上创建了一个带有一些随机主机名的虚拟服务器,例如{{3 },连接到我的localhost。
如果我在Slack聊天中键入Slash命令,Slack会成功向localtunnel.me
服务器发送一个POST请求,该服务器将通过管道传送到我的本地主机。
但是,在我部署到具有域名的Heroku(例如https://wkbtfodclm.localtunnel.me)后,我注意到Slash命令向Heroku上的服务器发送没有参数的GET请求。有没有人经历过这个?
答案 0 :(得分:1)
Slack方面的一切都按预期工作。当我使用Slash命令时,Slack会联系其服务器,然后使用所有参数对外部Web服务https://example.com(我配置)进行POST。但是,网络服务(由于DNS设置)会将https://example.com个请求重定向到https:// www .example.com(请注意 www )。这导致Slack的POST被重定向为没有URL查询的GET。配置Slash命令以使用https://www.example.com修复此问题。