2017-02-21 22 views
2

我想訂閱Slack Events API以查看發佈在閒散頻道中的任何消息。這些是我在Slack Event API documentations中給出的以下步驟。我的請求URL沒有收到Slack Events API的任何事件。我錯過了什麼?

  1. 我創建了一個鬆弛的應用程序具有下列權限範圍:
    • 渠道:歷史,組:歷史記錄,IM:歷史,mpim:歷史
  2. 在事件訂閱,我啓用的事件,已驗證的請求URL(「https://api.example.com/slack/event/push」),並訂閱以下團隊事件:
    • channel_history_changed,group_history_changed,message.channels,m essage.groups,message.im,message.mpim
  3. 我讓用戶通過oauth授權來安裝應用程序。網址顯示如下,範圍和重定向uri。 (PHP代碼)

    $ url =「https://slack.com/oauth/authorize/?client_id=」。 SLACK_CLIENT_ID。 「& scope = users.profile:read,users:read,groups:history,channels:history,im:history,mpim:history」。 「& redirect_uri =」。 urlencode('https://api.example.com/slack/oauth/callback')。 「& state = XXXXXXXXX」;

  4. 我收到來自鬆弛的代碼,我換取訪問令牌。

    訪問令牌:xoxp-XXXXXXXXX-XXXXXXXXX-XXXXXXX-XXXXXXXXXXXXXXXXXXXX 範圍:識別,渠道:歷史,組:歷史記錄,IM:歷史,mpim:歷史上,用戶可以讀,users.profile:讀 團隊ID: XXXXXXXX

我檢查了應用程序並整合了團隊,以查看該應用程序是否已安裝,並且是在應用程序列表中。

現在,根據我的理解,當任何消息發佈到團隊的任何渠道時,POST請求應發送到我已驗證的URL(「https://api.example.com/slack/event/push」)。但是我沒有收到POST請求。

我想也許網址被破壞了,但我用計數器測試了它,每次URL被點擊時它都會增加計數器。所以URL很好。

我錯過了某個地方嗎?我不知道接下來要做什麼。

+0

你的方法看起來不錯。我會嘗試的一件事是確保你的PHP腳本確實收到POST請求。激活腳本的完整日誌記錄,然後使用[hurl.it](https://www.hurl.it/)工具向其發送POST請求。我也會先從公共頻道嘗試。 –

+0

我認爲這可能是一個原因,並徹底測試我的終點。我的POST端點現在只做一個redis緩存中的計數器。我正在觀察計數器是否增加。當我從POSTMAN或瀏覽器打到端點時,它會很好地增加,這意味着端點沒有故障。我用hurl.it測試過事件,這沒有問題。 我在其中一篇文檔中讀到,如果端點返回太多的錯誤,那麼它會在一段時間內停用。我認爲這可能是一個理由,因爲當我第一次設置它時它會返回錯誤。但它已經過了一天,但我仍然沒有看到任何請求 –

+0

urlencode是否會將您的重定向url轉換爲正確的?並且'redirect_uri - 必須匹配最初提交的URI(如果發送了一個URI)'? – DomeTune

回答

1

我聯繫了Slack支持,他們非常有幫助。鬆弛的日誌顯示Slack實際上是將POST請求發送到我的請求url。所以我的設置工作正常。但是我的API框架無法解析請求主體,因此發送內部服務器錯誤(500)給Slack。我們通過使用requestb.in來了解這一點。

我只需要改變我解析請求正文的方式。

+0

你應該這樣做。浪費你的代表(賞金) –

+0

我想我會在這裏得到更快的迴應。我並不知道這種鬆懈的支持是如此之好。他們在一小時內回到我身邊。 –

+0

不,我只是說在添加賞金之前你可以這樣做。 –

相關問題