Как проверить URL запроса Slack Events API в приложении ASP.Net Core Mvc? - PullRequest
0 голосов
/ 28 сентября 2018

Я работаю над интеграцией Slack в приложении ASP.Net Core MVC 2.

Я сделал это для поиска и отправки сообщений на каналы 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, чтобы сделать его общедоступным и доступным.Но возникают проблемы, когда я даю Slack следующий URL для проверки:

http://IP_Address/Slack/Event

Ниже приведен скриншот ответа, который Slack дает enter image description here

Может кто-нибудь сказать, что здесь не так?Я попытался найти этот URL с помощью Почтальона и смог получить желаемый результат.

1 Ответ

0 голосов
/ 01 октября 2018

Вы можете попробовать это:

  1. Как указано в https://api.slack.com/events-api#subscriptions

Ваш URL запроса на событие должен быть подтвержден перед сохранением этой формы.Если вашему серверу требуется некоторое время, чтобы «проснуться», и ваша первоначальная попытка проверки URL не удалась из-за тайм-аута, используйте кнопку повтора, чтобы повторить попытку проверки.

Если при первой попытке это не удалось, убедитесь, чтосервер запущен и работает в следующий раз.

После того, как вы закончили вводить свой URL, мы отправим HTTP POST на URL вашего запроса.Мы проверим ваш сертификат SSL и отправим тело POST приложения / json, содержащее три поля:

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

Вам необходимо заменитьПример JSON с реальными значениями, созданными для вас URL конфигурации и проверки.

Убедитесь, что URL-адрес для проверки задан правильно, прежде чем генерировать вызов , и впоследствии не будет изменен.

Убедитесь, что в URL-схеме нет совпадений, например, http в одном месте и https в другом.

Попробуйте добавить из тела в почтовый запрос:

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