Visual Studio 2019 не видит таких вещей, как .StartReceiving () и другие | Telegram-бот

#c# #telegram-bot

#c# #telegram-бот

Вопрос:

Я пытаюсь создать простого телеграмм-бота на C #. Я установил пакеты NuGet, такие как Telegram.Bot и Telegram.Bot.Extensions.Polling . Я также посмотрел несколько видеоуроков.

Однако у меня есть ошибки с .StartReceiving() , .StopReceiving() , .OnMessage , MessageEventArgs. , ReplyKeyboardMarkup и KeyboardButton .

И я не знаю причины этого

 using System; using System.Collections.Generic; using Telegram.Bot; using Telegram.Bot.Args; using Telegram.Bot.Types.ReplyMarkups; using Telegram.Bot.Exceptions; using Telegram.Bot.Extensions.Polling;  namespace TelegramBot {  class Program  {  private static string Token { get; set; } = "My token";  private static TelegramBotClient client;   static void Main(string[] args)  {  client = new TelegramBotClient(Token);  client.StartReceiving();  client.OnMessage  = OnMessageHandler;  Console.ReadLine();  client.StopReceiving();  }   private static async void OnMessageHandler(object sender, MessageEventArgs e)  {  var msg = e.Message;   if (msg.Text != null)  {  Console.WriteLine($"Received a message with the text: {msg.Text}");  switch (msg.Text)  {  case "Sticke":  await client.SendStickerAsync(  chatId: msg.Chat.Id,  sticker: "Link for a sticker",  replyToMessageId: msg.MessageId,  replyMarkup: GetButtons());  break;   case "Sticker":  await client.SendPhotoAsync(  chatId: msg.Chat.Id,  photo: "Link for a pic",  replyMarkup: GetButtons());  break;   default:  await client.SendTextMessageAsync(msg.Chat.Id, "select a command: ", replyMarkup: GetButtons());  break;  }  }  }   private static IReplyMarkup GetButtons()  {  return new ReplyKeyboardMarkup  {  Keyboard = new Listlt;Listlt;KeyboardButtongt;gt;  {  new Listlt;KeyboardButtongt;{ new KeyboardButton { Text = "Sticker"}, new KeyboardButton { Text = "Pic"} },  new Listlt;KeyboardButtongt;{ new KeyboardButton { Text = "123"}, new KeyboardButton { Text = "456"} }  }  };  }  } } }  

Комментарии:

1. Какие именно ошибки вы получаете? Что-то вроде: «TelegramBotClient» не содержит определения для «Остановки получения»?

Ответ №1:

Поэтому я знаю, что вы, вероятно, смотрели много учебных пособий по этому вопросу, и, возможно, они немного устарели, но на самом деле то, как вы обрабатываете сообщения, немного изменилось.

Позвольте мне показать, как я это делаю:

 client.StartReceiving(async (bot, update, token) =gt; {  if (update.Message is Message message)  {  await client.SendTextMessageAsync(message.Chat, "hello world!");  }  });  

В приведенном выше коде я использовал лямбда-выражение, которое гораздо более читаемо имо. Но вы все равно можете использовать любой способ, который вам больше нравится.