История о том, как мы создавали чат бот для Telegram.
!!НАШ БЛОГ ПЕРЕЕХАЛ!!
Мы создали свой сайт! Все материалы, опубликованные в этом блоге, переехали туда.
Наш новый сайт maddevelop.ru
В общем, все началось с того, что появилась идея создать бот, чтобы Вы, наши подписчики, смогли протестировать свои знания по языкам программирования. Проще говоря, бот должен содержать в себе различного рода тренировочные задания. Но мы столкнулись с некоторыми сложностями.
Первый вариант статьи должен был содержать описание погодного бота, созданного на основе ASP.Net Core Web API, но мы столкнулись с тем, что бот просто так не запустился... В связи с тем, что у нас в стране полным ходом (нет) идет блокировка сервиса Telegram, достучаться до него получится только с помощью VPN. И поэтому приняли решение описать все с самого начала. Постараемся по максимуму рассказать о тех подводных камнях, которые можно встретить во время разработки бот
Информацию искали в самых различных источниках, очень помог официальный мануал от команды Telegram.
Начнем с самого начала, а именно с регистрации нового бота. Поехали!
Регистрация нового бота.
Создаем бота через другого бота (вот такая вот загогулина :D ). Для этого находим в поиске @BotFather и добавляем его к себе в чаты.
Далее отправляем /start, он выдает весь список возможных команд. Нам нужна команда /newbot. Он предложит нам выбрать название бота и id, с помощью которого можно будет его найти.
После выбора этих параметров BotFather отправит сообщение, в котором будет поздравление с созданием нового бота и (самое главное) токен нашего бота, его то мы и будем использовать.
После можно найти своего бота по id и произвести дополнительную настройку, добавить описание и аватарку.
Все программы будут создаваться на C# и иногда будем применять технологию .Net Core. В качестве среды разработки бы выбран VS Code (Просто у нас несколько ноутбуков, один из них на Ubuntu и там стоит Code. В целом очень даже хороший редактор кода. Обязательно сделаем статью по некоторым основам работы с этой программой)
Проверяем работоспособность на простейшей программе.
Создадим папку (Например Example 1) и откроем ее в VS Code. Через терминал введем команду
dotnet new console
тем самым у нас создастся новый консольный проект, который содержит только файл Program.cs.
Через диспетчер NiGet установим в наш проект пакет Telegram.Bot. В файле Program.cs добавим с помощью директивы #using
using Telegram.Bot; using Telegram.Bot.Args;
И в классе Programm напишем такую программу.
class Program { static ITelegramBotClient botClient; static void Main() { botClient = new TelegramBotClient("<Token>"); var me = botClient.GetMeAsync().Result; Console.WriteLine( quot;Привет всем! Я пользователь {me.Id} и меня зовут {me.FirstName}." ); } }
Программа просто создает объект интерфейса ITelegramBotClient и с помощью метода
botClient.GetMeAsync()
Получаем свойство Result, которое содержит всякого рода информацию о нашем боте.
Но возможно, даже на этом этапе у Вас выскочит Exception. Он скажет о том, что клиент не смог получить доступ к удаленному серверу за обозримое время, а это значит, что результатов Вы не получите. Для решения этой проблемы можно использовать VPN.
О том, как это все сделать мы расскажем в следующей статье из этой серии. Приведем несколько разных примеров, как это реализовать, а Вы выберете самый удобный для себя.
Ещё больше интересной информации на нашем Telegram-канале.