Telegram.Bot - отправка файла
У меня есть код:
if (message.Text.Contains("file"))
{
try
{
var id = message.Text.Split('_')[1];
if (fileIds.Contains(id))
SendFile(int.Parse(id), message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
- Задача этого кода, что когда юзер открывает ссылку типа t.me/fileshare_robot?start=file_204, в переменную
idзаписывалось число 204. Ну а потом вызывалась функция SendFile():
public static void SendFile(int id, Message msg)
{
var trueId = fileIds[id];
Console.WriteLine($"Sending file with id {trueId}");
InputOnlineFile inputOnlineFile = new(trueId);
bot.SendDocumentAsync(msg.Chat.Id, inputOnlineFile, LangRu.sendedMsg);
}
- Тут задача прислать юзеру файл под выбранным индексом.
Проблема в том, что в методе SendFile программа намертво зависает, точнее сказать не могу, где именно.
Я уже пробовал присылать просто локальный файл, но даже так, программа тоже зависает...
Полный проект: https://disk.yandex.ru/d/RMCM9ObxnAtDWw
private static async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
{
if (update.Message is Message message)
{
Console.WriteLine("Recieved " + message.Text);
switch (message.Text)
{
case "/start": Start(message); break;
case "/load": Load(message); break;
}
if (message.Document != null)
{
var attachement = message.Document;
CreateFIle(attachement, message);
}
if (message.Text.Contains("file"))
{
try
{
var id = message.Text.Split('_')[1];
if (fileIds.Contains(id))
SendFile(int.Parse(id), message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
public static void SendFile(int id, Message msg)
{
var trueId = fileIds[id];
Console.WriteLine($"Sending file: {trueId}");
InputOnlineFile inputOnlineFile = new("E:\\ssh-usernames.txt");
bot.SendDocumentAsync(msg.Chat.Id, inputOnlineFile, LangRu.sendedMsg, allowSendingWithoutReply: true);
}