• На форуме разрешено создавать темы только для пользователей, кто имеет группу «Продавец». Приобрести её можно здесь: https://dstock.biz/account/upgrades. Либо в телеграме https://t.me/DustDS

Статья Как сделать Telegram бота на C#

Irval

Главный Модератор
Главный Модератор

Irval

Главный Модератор
Главный Модератор
Статус
Оффлайн
Регистрация
31 Май 2019
Сообщения
245
Реакции
84
Доброго времени суток

После моей недавней статьи про бота для ВКонтакте с автообработкой счетов через QIWI, я обещал выпустить небольшого бота для Telegram. Удобнейшим языком программирования для реализации данной идеи будет Python, но из-за интереса в создании такового бота на C#, я решил научить вас работать с Telegram API именно с помощью него, так как статей на Python хватает и на нашем форуме (например, гайд от @Spec122
Пожалуйста, авторизуйтесь для просмотра ссылки.
). Работать с ботом я рекомендую через библиотеку Telegram.Bot (ее можно установить в менеджере пакетов NuGet).

1588151398321.png
Итак, создав решение и подключив к нему Telegram.Bot, можно преступать к написанию кода. Функционал бота я не стал расписывать. Сейчас он умеет отвечать на команду /start и любую ему неизвестную, однако с помощью добавления дополнительных кейсов в switch, можно увеличить его возможности так, как позволяет вам фантазия! Самое главное - правильно написанный шаблон кода.
C#:
class Program
    {
        static TelegramBotClient Bot;
        static void Main(string[] args)
        {
            Bot = new TelegramBotClient("токен");
            Bot.OnMessage += MessageReceived;
            var me = Bot.GetMeAsync().Result;
            Console.WriteLine(me.FirstName);

            Bot.StartReceiving();
            Console.ReadLine();
            Bot.StopReceiving();
        }

        private static void MessageReceived(object sender,  Telegram.Bot.Args.MessageEventArgs e)
        {
            try
            {
                var Message = e.Message;
                string name = Message.From.FirstName;
                Console.WriteLine($"{name} отправил сообщение: '{Message.Text}'");
                switch (Message.Text)
                {
                    case "/start":
                        Bot.SendTextMessageAsync(e.Message.Chat.Id, $"Привет, {name}!");
                        break;
                    default:
                        Bot.SendTextMessageAsync(e.Message.Chat.Id, "Команда не распознана!");
                        break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Во время выполнения кода произошла ошибка:\n{ex}");
            }

        }
    }
Для успешной работы программы, необходимо изменить токен на свой, а также включить VPN, если вы живете в России (из-за блокировки Telegram на нашей территории :sad:). На этом все, если появится какие-либо вопросы или же ошибки в коде - отпишите в тему, постараюсь помочь.
 
Последнее редактирование:

Ravin

Администратор
Администратор

Ravin

Администратор
Администратор
Статус
Оффлайн
Регистрация
11 Янв 2019
Сообщения
182
Реакции
103
Доброго времени суток

После моей недавней статьи про бота для ВКонтакте с автообработкой счетов через QIWI, я обещал выпустить небольшого бота для Telegram. Удобнейшим языком программирования для реализации данной идеи будет Python, но из-за интереса в создании такового бота на C#, я решил научить вас работать с Telegram API именно с помощью него, так как статей на Python хватает и на нашем форуме (например, гайд от @Spec122
Пожалуйста, авторизуйтесь для просмотра ссылки.
). Работать с ботом я рекомендую через библиотеку Telegram.Bot (ее можно установить в менеджере пакетов NuGet).

Итак, создав решение и подключив к нему Telegram.Bot, можно преступать к написанию кода. Функционал бота я не стал расписывать. Сейчас он умеет отвечать на команду /start и любую ему неизвестную, однако с помощью добавления дополнительных кейсов в switch, можно увеличить его возможности так, как позволяет вам фантазия! Самое главное - правильно написанный шаблон кода.
class Program
{
static TelegramBotClient Bot;
static void Main(string[] args)
{
Bot = new TelegramBotClient("токен");
Bot.OnMessage += MessageReceived;
var me = Bot.GetMeAsync().Result;
Console.WriteLine(me.FirstName);

Bot.StartReceiving();
Console.ReadLine();
Bot.StopReceiving();
}

private static void MessageReceived(object sender, Telegram.Bot.Args.MessageEventArgs e)
{
try
{
var Message = e.Message;
string name = Message.From.FirstName;
Console.WriteLine($"{name} отправил сообщение: '{Message.Text}'");
switch (Message.Text)
{
case "/start":
Bot.SendTextMessageAsync(e.Message.Chat.Id, $"Привет, {name}!");
break;
default:
Bot.SendTextMessageAsync(e.Message.Chat.Id, "Команда не распознана!");
break;
}
}
catch (Exception ex)
{
Console.WriteLine($"Во время выполнения кода произошла ошибка:\n{ex}");
}

}
}
Для успешной работы программы, необходимо изменить токен на свой, а также включить VPN, если вы живете в России (из-за блокировки Telegram на нашей территории :sad:). На этом все, если появится какие-либо вопросы или же ошибки в коде - отпишите в тему, постараюсь помочь.
Можно сделать бота для канала? Который бы по опред. времени кидал какое-либо сообщение? И желательно разные в разное время
 

Irval

Главный Модератор
Главный Модератор

Irval

Главный Модератор
Главный Модератор
Статус
Оффлайн
Регистрация
31 Май 2019
Сообщения
245
Реакции
84
Можно сделать бота для канала? Который бы по опред. времени кидал какое-либо сообщение? И желательно разные в разное время
Да, конечно. Можешь отписать в лс, если нужно что-то сделать
 

thip76

Интересующийся

thip76

Интересующийся
Статус
Оффлайн
Регистрация
2 Май 2020
Сообщения
16
Реакции
5
Топ тема, буду пытатся, сейчас без ботов не обойтись
 
Сверху