2016-04-16 104 views
0

我想通過創建一個Slack應用程序來擴展Slack,該應用程序在用戶安裝Slack應用程序時安裝Slash命令。由Slack聊天用戶觸發的Slash命令將與我正在嘗試開發的外部Web服務進行交互。Slack Slash命令觸發無查詢參數的GET請求

根據Slack命令的Slack文檔(https://api.slack.com/slash-commands),任何Slash命令都會通過POST主體中的一組參數觸發POST到外部服務,以指示用戶,Slack通道等那觸發了請求。

當我做了我開發本地主機上提供給Internet上使用localtunnel(https://www.npmjs.com/package/localtunnel)的Web服務,localtunnel實際上創建與localtunnel.me一些隨機的主機名,例如,https://wkbtfodclm.localtunnel.me,它連接到我的本地虛擬服務器。

如果我在我的Slack聊天中輸入Slash命令,Slack成功發送POST請求到localtunnel.me服務器,該服務器被傳送到我的本地主機。

但是,在部署到具有域的Heroku(例如https://example.com)之後,我注意到Slash命令向Heroku上的服務器發送一個沒有參數的GET請求。有沒有人經歷過這個?

+1

這可能是ssl檢查嗎?請參閱https://api.slack.com/slash-commands#ssl。 *應該*是一個參數'ssl_check = 1',但基於文檔,我期望這是一個查詢參數(URL的一部分)。這與你所看到的相符嗎? (這可能有助於查看完整的HTTP請求,包括完整的URL和標頭。) – smarx

+0

謝謝。目前,當我在Slack上使用Slash命令時,它將聯繫Slack服務器(如預期的那樣),但不使用POST聯繫外部Web服務,Slack使用GET來聯繫它,但沒有參數等。 – nethsix

回答

0

Slack端的所有內容都按預期工作。當我使用Slash命令時,Slack聯繫其服務器,然後服務器通過所有參數向外部Web服務https://example.com(按我配置)進行POST。但是,Web服務(由於DNS設置)會將請求重定向到https:// www .example.com(請注意www)。這導致Slack的POST被重定向爲一個沒有URL查詢的GET。配置斜槓命令使用https://www.example.com解決了這個問題。