Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста найти ошибку в коде C#

注定沉默 末日降臨 Ученик (140), закрыт 3 месяца назад
написал код C# в Visual Studio код максимально простой, бот в телеграме должен ответить на ключевое слово. Но при запуске кода что бы я не делал бот не отвечает ни в какую. Помогите найти ошибку, пожалуйста. Скачен пакет NuGet Telegram.bot

using System;
using Telegram.Bot ;
using Telegram.Bot .Types;
using System.Threading;
using System.Threading.Tasks;

namespace MyProject
{
class Program
{
static void Main(string[] args)
{
var client = new TelegramBotClient("АПИАЙ КЛЮЧ БОТА");
client.StartReceiving(Update, Error);
Console.ReadLine();

}

async static Task Update(ITelegramBotClient botClient, Update update, CancellationToken token)
{

var message = update.Message;
if (message.Text != null)
{
if (message.Text.ToLower().Contains("Здорова"))
{
await botClient.SendTextMessageAsync(message.Chat.Id, "Здравствуйте");
return;
}
}
}

private static Task Error(ITelegramBotClient arg1, Exception arg2, CancellationToken arg3)
{
throw new NotImplementedException();
}
}
}
Дополнен 5 месяцев назад
вот код в вс
Лучший ответ
resurce Гуру (4209) 5 месяцев назад
Проверь правильность синтаксиса и порядок параметров в методе StartReceiving, а также добавь задержку после запуска. Должно быть так:
 using System; 
using Telegram.Bot;
using Telegram.Bot.Types;
using System.Threading;
using System.Threading.Tasks;

namespace MyProject
{
class Program
{
static async Task Main(string[] args)
{
var client = new TelegramBotClient("АПИАЙ КЛЮЧ БОТА");
var cts = new CancellationTokenSource();
var cancellationToken = cts.Token;

client.StartReceiving(Update, Error, receiverOptions: null, cancellationToken: cancellationToken);
Console.WriteLine("Бот запущен...");
await Task.Delay(-1, cancellationToken);
}

async static Task Update(ITelegramBotClient botClient, Update update, CancellationToken token)
{
var message = update.Message;
if (message?.Text != null)
{
if (message.Text.ToLower().Contains("здорово"))
{
await botClient.SendTextMessageAsync(message.Chat.Id, "Здравствуйте", cancellationToken: token);
}
}
}

private static Task Error(ITelegramBotClient botClient, Exception exception, CancellationToken cancellationToken)
{
Console.WriteLine(exception);
return Task.CompletedTask;
}
}
}
注定沉默 末日降臨Ученик (140) 5 месяцев назад
Все получилось! Огромное Вам спасибо!
Остальные ответы
Похожие вопросы