При написании чат-бота возникает ошибка: "не содержит определения для и нет доступного метода расширения, принимающего первый аргумент типа..."
Я пишу чат-бот, но получаю следующие ошибки: 1) «ITelegramBotClient» не содержит определения для «OnMessage», и не может быть найден доступный метод расширения «OnMessage», принимающий первый аргумент типа «ITelegramBotClient» ( вам не хватает директивы использования или ссылки на сборку?) 2) «TelegramBotClientExtensions.StartReceive(ITelegramBotClient, ReceiverOptions?, CancellationToken)» нельзя вывести из использования. Попробуйте явно указать аргументы типа. 3) «ITelegramBotClient» не содержит определения для «StopReceive», и не может быть найден доступный метод расширения «StopReceive», принимающий первый аргумент типа «ITelegramBotClient» (вам не хватает директивы использования или ссылки на сборку?) 4)' Не удалось найти MessageEventArgs (вам не хватает директивы using или ссылки на сборку?) Код для этого чата:
using System;
using Telegram.Bot;
using Telegram.Bot.Args;
namespace FinanceManagerBot
{
class Program
{
static ITelegramBotClient botClient;
static void Main()
{
botClient = new TelegramBotClient("YOUR_TOKEN_HERE");
botClient.OnMessage += Bot_OnMessage;
botClient.StartReceiving();
Console.ReadLine();
botClient.StopReceiving();
}
private static void Bot_OnMessage(object sender, MessageEventArgs e)
{
if (e.Message.Text == "/start")
{
botClient.SendTextMessageAsync(e.Message.Chat.Id, "Welcome to Finance Manager! To get started, create a new account using the /newaccount command.");
}
else if (e.Message.Text == "/newaccount")
{
botClient.SendTextMessageAsync(e.Message.Chat.Id, "Account created!");
}
else if (e.Message.Text.StartsWith("/spent "))
{
botClient.SendTextMessageAsync(e.Message.Chat.Id, "Expense recorded!");
}
else if (e.Message.Text.StartsWith("/earned "))
{
botClient.SendTextMessageAsync(e.Message.Chat.Id, "Income recorded!");
}
else if (e.Message.Text == "/budget")
{
botClient.SendTextMessageAsync(e.Message.Chat.Id, "Budget information is not available at this time.");
}
else if (e.Message.Text == "/wallet")
{
botClient.SendTextMessageAsync(e.Message.Chat.Id, "Wallet information is not available at this time.");
}
else if (e.Message.Text == "/history")
{
botClient.SendTextMessageAsync(e.Message.Chat.Id, "Spending history is not available at this time.");
}
else
{
botClient.SendTextMessageAsync(e.Message.Chat.Id, "Sorry, I didn't understand that. Please try again.");
}
}
}
}
Ответы (1 шт):
Вы используете устаревший код. Для c# есть неплохой официальный гайд по telegram api. Там будет код для неустаревших библиотек https://telegrambots.github.io/book/index.html