Реализовать разговор.создать в C # - PullRequest
1 голос
/ 23 октября 2019

Я просматриваю документацию Slack на messages.create и не знаю, как интегрировать ее в C #. Нужно ли мне импортировать их решение Slack API в мой код, чтобы использовать его? Любая помощь будет отличной!

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Чтобы создать канал с C #, все, что вам нужно сделать, это сделать запрос POST к соответствующему методу API. channels.create будет работать, но я рекомендую более новый conversations.create метод API.

Существует множество способов сделать запрос POST в C #. Вот пример использования HttpClient, который является предпочтительным подходом. Проверьте этот пост для альтернатив.

Вот пример:

using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace SlackExamples
{
    class CreateChannels
    {
        private static readonly HttpClient client = new HttpClient();

        static async Task CreateChannel()
        {
            var values = new Dictionary<string, string>
            {
                { "token", Environment.GetEnvironmentVariable("SLACK_TOKEN") },
                { "name", "cool-guys" }
            };

            var content = new FormUrlEncodedContent(values);
            var response = await client.PostAsync("https://slack.com/api/conversations.create", content);
            var responseString = await response.Content.ReadAsStringAsync();
            Console.WriteLine(responseString);
        }

        static void Main(string[] args)
        {
            CreateChannel().Wait();
        }
    }
}

Примечание: токен, который вам нужен, хранится в переменной среды в целях безопасности, котораяэто хорошая практика.

0 голосов
/ 23 октября 2019

вы можете использовать httpclient или restsharp (мой личный фаворит) для вызова slacks web api.

Вы будете звонить https://slack.com/api/conversations.create из своего приложения, это не похоже на загрузку sdk.

код резца:

var client = new RestClient("https://slack.com/api/chat.postMessage");
var request = new RestRequest(Method.POST);
request.AddHeader("Postman-Token", "7efd9a78-827d-4cbf-a80f-c7449b96d31f");
request.AddHeader("cache-control", "no-cache");
request.AddHeader("Content-type", "application/json");
request.AddHeader("Authorization", "Bearer xoxb-1234-56789abcdefghijklmnop");
request.AddParameter("undefined", "{\"channel\":\"C061EG9SL\",\"text\":\"I hope the tour went well, Mr. Wonka.\",\"attachments\": [{\"text\":\"Who wins the lifetime supply of chocolate?\",\"fallback\":\"You could be telling the computer exactly what it can do with a lifetime supply of chocolate.\",\"color\":\"#3AA3E3\",\"attachment_type\":\"default\",\"callback_id\":\"select_simple_1234\",\"actions\":[{\"name\":\"winners_list\",\"text\":\"Who should win?\",\"type\":\"select\",\"data_source\":\"users\"}]}]}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
...