簡體   English   中英

如何在 ASP.Net Core Mvc 應用程序中驗證 Slack Events API 請求 URL?

[英]How to verify Slack Events API Request Url in ASP.Net Core Mvc application?

我正在 ASP.Net Core MVC 2 應用程序中進行 Slack 集成。

我已經完成了搜索和發布消息到 Slack 頻道的工作。 現在我堅持在這個應用程序中集成事件 API。 基本上,目前我無法驗證這里提到的請求 URL事件 API 訂閱

以下是我們提供給 Slack 的操作方法,他們將發送驗證 json 對象,該對象將映射到我的操作的請求參數,如下所示:

{
"token": "Jhj5dZrVaK7ZwHHjRyZWjbDl",
"challenge": "3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P",
"type": "url_verification"
}

[HttpPost]
    public IActionResult Event(EventsRequest request)
    {
        if (request != null)
        {
            if (request.type.Equals("url_verification"))
                return Content(request.challenge);
            else
                ViewBag.Challenge = request.challenge;
        }
        return View();
    }

這是我的 EventsRequest 類:

public class EventsRequest
{
    public string token { get; set; }
    public string challenge { get; set; }
    public string type { get; set; }
}

我已在 IIS 上本地部署此應用程序,並應用 InBound 規則使其可公開訪問且可訪問。 但是當我將以下 URL 提供給 Slack 進行驗證時會出現問題:

http://IP_Address/Slack/Event

以下是 Slack 給出的響應截圖在此處輸入圖片說明

有人可以告訴這里有什么問題嗎? 我嘗試使用 Postman 訪問此 URL,並且能夠獲得所需的結果。

你可以試試這些:

  1. 正如https://api.slack.com/events-api#subscriptions 中所建議的

在保存此表單之前,必須確認您的活動請求 URL。 如果您的服務器需要一些時間來“喚醒”並且您的 URL 驗證初始嘗試由於超時而失敗,請使用重試按鈕再次嘗試驗證。

如果第一次嘗試失敗,請確保服務器已啟動並正在運行,並在下次嘗試。

  1. 在您完成輸入 URL 后,我們將向您的請求 URL 發送 HTTP POST。 我們將驗證您的 SSL 證書,並發送一個包含三個字段的 application/json POST 正文:

    { "token": "Jhj5dZrVaK7ZwHHjRyZWjbDl", "challenge": "3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P", "type": "url_verification" }

您需要使用為您的 url 配置和驗證生成的真實值替換示例 json。

確保在生成挑戰之前正確設置驗證 url,並且之后不會更改。

  1. 確保 url 方案中沒有不匹配,例如一個地方的 http 和另一個地方的 https。

嘗試在 post 請求中從 body 添加:

[HttpPost]
public IActionResult Event([FromBody]EventsRequest request)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM