Приветствую.
Хочу сделать интеграцию с внешней системой, в частности мессенджером Slack, он позволяет сделать WebHook, и обращаться к нему посредством POST запроса, например:
curl -X POST --data-urlencode 'payload={"channel": "#general", "username": "BPM-bot", "text": "This is posted to #general and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXXX
Это запостит в канал #general от имени BPM-bot сообщение text и смайл, https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXXX уникальный адрес webhook`а для моего инстанса Slack.
Как в BPM реализовать отправку этого сообщения? Т.е. как сделать бизнес-процесс мне понятно, а вот с отправкой сложности...
Нравится
1 комментарий
21 июля 2016 13:22
public class RequestUtils: IDisposable { #region Methods: Private private async Task<HttpWebResponse> SendRequest(WebRequest request) { var response = await request.GetResponseAsync(); return (HttpWebResponse)response; } #endregion #region Methods: Public public void Dispose() { } public void DoPostRequest(string requestUri, string user, string pwd, string text) { /* data sample { "userName": "user1", "password": "password", "data": "Hello" } */ /* Преобразовываем в json */ string jsonData = JsonConvert.SerializeObject(new { userName = user, paswword = pwd, data = text }); /* uri sample: http://localhost/MyApp/bla.svc/Login */ WebRequest request = WebRequest.Create(requestUri); byte[] dataArray = Encoding.UTF8.GetBytes(jsonData); request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = dataArray.Length; Stream stream = request.GetRequestStream(); stream.Write(dataArray, 0, dataArray.Length); /* send request */ /* async */ var response = SendRequest(request); /* or sync*/ var response = request.GetResponse(); } #endregion }
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать