В качестве примера отправки сообщения в Телеграм будем использовать:
- В качестве IDE — Microsoft Visual Studio Community 2019
- Тип проекта — консольное приложение .NET.Core
- Nuget пакет — «HttpToSocks5Proxy» (очень простой способ подключаться к проксисерверу)
- Данные от Proxy сервера SOCKS5 (в нашем случае это собственный Proxy сервер поднятый на NodeJs)
Консольное приложение будет отправлять сообщение в указанный чат популярного месенджера Телеграм
Ниже код класса:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
using System; using System.Collections.Generic; using MihaZupan; using System.Net.Http; using System.Threading.Tasks; namespace TelegramBot { class Telegram { /** * Телеграм Токен */ protected string token = "126440504:DASSdtnnFg0vCoMoj4NdEPdcaKumdrvRVXmYDnfdd"; /** * Пользователь или группа Телеграм */ protected string telegramUser = "500114511"; /** * Параметры Прокси */ protected string proxyAddr = "111.111.111.111"; protected int proxyPort = 1270; protected string proxyUser = "coderunProxy"; protected string proxyPass = "coderunProxyPassword"; public Telegram() { } async public void SendMessage(string message) { await Send(message); } protected async Task Send(string text) { // Подключение к прокси серверу var proxy = new HttpToSocks5Proxy(proxyAddr, proxyPort, proxyUser, proxyPass); var handler = new HttpClientHandler(); handler.Proxy = proxy; handler.AllowAutoRedirect = true; handler.CheckCertificateRevocationList = false; handler.MaxAutomaticRedirections = 10; //Количество возможных редиректов HttpClient client = new HttpClient(handler, true); client.DefaultRequestHeaders.Add("Accept", "application/json"); //Параметры POST запроса HttpContent content = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("chat_id", telegramUser), new KeyValuePair<string, string>("text", text), new KeyValuePair<string, string>("disable_notification", "0") } ); // Адрес API телеграм для отправки сообщений string url = $"https://api.telegram.org/bot{token}/sendMessage"; // Формируем POST запрос к сервису телеграм var response = client.PostAsync(new Uri(url), content).Result; Console.WriteLine(response.ToString()); } } } |
Теперь код этого класса достаточно вывести в Main функции вашего проекта.
Кратко по коду:
- Одной строкой подключаемся к Proxy серверу SOCKS5 (в случае если вы его используете, по умолчанию HttpClient не умеет работать с SOCKS5 )
- Задаёте параметры обработчика handler
- Формируете необходимые POST данные которые нужно отправить в API Telegram (ид чата, текст)
- Отправляете POST запрос на адрес API телеграм
В этом примере можно и не использовать Proxy, если он вам не требуется. А так же пример с Proxy можно использовать и для любых других сетевых запросов при реализации кода на C# (C Sharp)