Как написать команды для бота Телеграмм

Как создать бота в Телеграмм? В нашей статье ты найдешь все, чтобы у тебя получилось создать бота для Telegram без особого труда. Теперь каждый может (если знает) как создать бота телеграмм. Разработчики сделали общедоступной данную платформу.

Симулятор собеседника Telegram — это программа, которая запускается и работает на вашей стороне. Она посылает запросы к АПИ Telegram Bot, который является достаточно простым:

  • Программа обращается к установленным параметрам по ссылке;
  • Телеграмм отвечает JSON массивом.

Чтобы понять принцип работы Telegram API, нужно попробовать создать элементарного бота в Телеграмм.

Регистрация

Делается это так:

Полученную комбинацию желательно протестировать этой ссылкой: api.telegram.org/bot/getMe.

Процесс программирования

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

В Telegram есть возможность вместо выгрузки сообщений вручную установить вебхук, чтобы они присылали каждое письмо сами. Для создания Telegram бота на Python лучше воспользоваться каким-нибудь реактором, например, tornado.web.

Как создать свои команды и настроить меню бота в Telegram?

Костяк программы

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

Логика будет находиться в классе tornado.web.RequestHandler, который реактор принимает для обработки запросов.

класс tornado.web.RequestHandler, который реактор принимает для обработки запросов

CMD обозначает словарь всех доступных команд. Send_reply — это функция отправления ответа. Она принимает готовый массив Message.

Команды

Сначала следует научить программу бота в Telegram константам /start и /help:

Учим программу константам /start и /help

Объект message[‘from’] является массивом типа User. От него бот получает данные пользователя, его ID и имя. Будет лучше, если функция ответов будет принадлежать message[‘chat’][‘id’]. Так при общении там будет User, а в случае чата — id последнего.

Установке /start отводится сразу две функции:

• команда без параметров нужна для вывода данных о боте; • с параметрами — для идентификации.

Есть смысл применять ее для требующих авторизации действий.

Теперь вы можете создать любое собственное задание. К примеру, /base64.

Создание /base64

Для мобильных Telegram перечень команд

Если пользователь Телеграмм захочет увидеть перечень доступных заданий (например, чтобы узнать, как убить программу после выполнения задачи), ему нужно будет написать «/».

Как научить бота говорить

В Handler следует добавить обработчик:

В список команд нужно включить речь:

В список команд включаем речь

Значение 75 здесь отображает вероятность того, что хочет сказать пользователь. Константа format_map удобна для описания требующих подстановки строк.

Так бот сможет отвечать на приветствия и обращаться к собеседнику по имени.

Отсылаемые сообщения могут быть не только текстовыми

Теперь, когда вы знаете, как создать бота телеграмм, можно сделать возможность не только писать фразы, но и делиться изображениями, аудиофайлами.

Например, можно расширить словарь RESPONSES так:

И будем ловить сообщения:

Теперь объект Message не включает в себя текст, поэтому нужно изменить send_reply:

Еще по теме:  Как убрать переписку из архива в Телеграмме

Так робот будет иногда присылать картинку вместо времени:

Отправка картинки со временем

Спасибо статье: https://habrahabr.ru/post/262247/

Источник: messagu.ru

Как создать своего бота в BotFather?

В мессенджере Telegram есть бот BotFather — ассистент, который помогает пользователям управлять ботами, но управление в нем многим может показаться сложным.

Именно поэтому, мы решили рассказать вам о том, как его использовать и создать своего бота через BotFather.

Какие функции есть в BotFather?

Как и говорилось выше, это полноценный инструмент для управления своих ботов в Telegram.

В боте есть 2 основные команды.

  1. Команда /newbot позволяет создать нового бота.
  2. /mybots запускает редактор настроек ваших ботов.

6 команд для редактирования.

  1. /setname открывает редактор имен ботов.
  2. /setdescription открывает редактор описания бота. Короткое описание вашего бота. Допускается не более 512 символов. Этот текст будет виден пользователю при инициализации диалога.
  3. /setabouttext — запускает редактор информации»о боте». Информация о боте отображается в его профиле, максимум 120 символов.
  4. /setuserpic — отвечает за запуск редактора фотографии профиля бота. Размер фотографии профиля должен быть не менее чем 200×200 пикселей. Также желательно загружать квадратные изображения.
  5. /setcommands — запускает редактор списка команд бота. Команды нужны для управления и взаимодействия с ботом. Каждая команда начинается с косой черты «/», можно использовать латинские буквы, цифры, а также подчеркивания. Но не более 32 символов. Также необходимо задать описание команды. Данный список команд можно увидеть написав косую черту «/» в диалоге с ботом.
  6. /deletebot — команда для удаления бота

7 команд для настройки бота.

  1. /token — команда для генерации токена.
  2. /revoke — данная команда отзывает токен.
  3. /setinline — команда включения inline mode.
  4. /setinlinegeo — включение местоположения.
  5. /setinlinefeedback — открывает настройки обратной связи
  6. /setjoingroups — позволяет включить и отключить возможность добавления ботов в группы.
  7. /setprivacy — команда для активации режима конфиденциальности в группах. Вы можете указать какие сообщения бот может получать в группах.

После ознакомления с командами можно приступать и к созданию бота.

Создаем своего бота и получаем токен.

Это основной момент в создании бота. В нем нужно указать его название, задать адрес ссылки, описание, установить картинку бота и получить токен.

Для создания бота введите в чат с BotFather команду /newbot. Бот попросит вас ввести название для нового бота. Можете указать в любом удобном формате, поддерживается кириллица и латиница, например: «тестовый bot». — Имя будет отображаться в заголовке и в информации о боте.

После того, как вы задали боту имя, нужно указать его сокращенное название для ссылок. Оно должно обязательно содержат приставку «bot» на конце. Например: «Test_Bot». — Сокращенное название может содержать от 5 до 32 и только латинских символов.

Если все выполнено верно ваш бот будет зарегистрирован в Телеграм и BotFather выдаст вам токен бота в таком формате: API:764645301:AAGdRMMi_bF67lCkJjA0DKQNOwoATJQMWXk

Этот токен можно использовать для авторизации бота и отправки запросов к Bot API.

Создание токена

Токен — это секретный ключ-идентификатор бота. Токен используется при обращении к Telegram API для идентификации бота.

Если вы потеряли, или у вас украли token, который был выдан при создании бот. Вы можете сгенерировать его заново. Для этого используйте команду /token, выберите нужного бота, далее ботфазер выдаст вам новый токен.

Еще по теме:  Как разблокировать пользователя в Телеграмм если его нету

Теперь у вас есть бот и его token. Вы можете управлять им, устанавливать ему фото профиля, задавать описание и приветствие. А по токену вы сможете подключить Телеграм бота с его программной частью на сервере.

Источник: botcreators.ru

Склад мемов или Бот для Telegram — Часть 1

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

Кому стало интересно, прошу пожаловать под кат.

Рождение бота

Запускаем мессенджер Telegram и в поисковую строку вводим «botfather». В переводе с английского «отец ботов».

Нажимаем кнопку Start. Отец ботов сразу вывел список доступных команд.

Нам нужна команда для создания бота «/newbot».

Отец ботов просит придумать прозвище для нового бота. Я назову его «Склад мемов».

Теперь нужно придумать его username. Оно обязательно должно оканчиваться, словом bot. Username я придумал заранее, перебрав до этого сотни комбинаций.

Отец ботов поздравляет с успешным созданием бота и выдаёт токен для управления им. Теперь нужно описать, чем занимается бот. Делается это через команду «/setdescription».

Установим аватарку для бота командой «/setuserpic».

Командой «/setinline» зададим текст подсказки, которая появится, когда мы обратимся к боту в режиме inline.

А вот так будет выглядеть результат обращения в этом режиме:

Для удобства пользователя перечислим команды, которые бот будет понимать. Делается это через команду «/setcommands». Подсказка со списком команд будет появляться после ввода символа «/».

Вот так выглядят подсказки на практике:

Установка библиотеки

Для работы с Telegram API нам нужна библиотека. Можно конечно пойти по хардкору и написать её самому, но мы же ведь идём по простому пути. В интернете есть несколько разновидностей таких библиотек для C#. Мой выбор пал на проект с названием «Telegram.Bot». На момент написания статьи, эта библиотека была самой популярной.

Что бы не заморачиваться с установкой, я воспользовался консолью диспетчера пакетов NuGet. С помощью этого диспетчера, можно с лёгкостью скачать и подключить к проекту большинство существующих библиотек. К тому же он докачает все необходимые зависимости. Обновление уже подключенной библиотеки происходит так же просто. Ммм… звучало как реклама…

Команда установки библиотеки через консоль диспетчера пакетов NuGet:
Install-Package Telegram.Bot

Если вы никогда не пользовались консолью NuGet в Visual Studio, то открыть её очень просто.

Вводим команду и жмём Enter. Всё остальное NuGet сделает за вас.


Пишем код

Все условия созданы, приступаем к написанию кода. Переходим в класс «Program».
Объявим приватную статическую переменную только для чтения с типом TelegramBotClient и с именем bot.
Ей присвоим новый объект этого же типа. В аргументах конструктора нужно указать токен. Его нам выдал отец ботов при создании бота.

private static readonly TelegramBotClient bot = new TelegramBotClient(«»);

В точке входа в программу, вешаем на бота обработчик событий OnMessage.

bot.OnMessage += Bot_OnMessage;

Это событие возникает, когда пользователь что-то отправил боту. Будь это текст, изображение, файл и т.д. В обработчике обрабатываем полученное сообщение.

Еще по теме:  Как в Телеграм найти дату в чате

private static async void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e) < Message msg = e.Message; if (msg == null) return; //. >

Если сообщение пустое, то выходим из метода. Введём условие срабатывающее, если сообщение содержит текст.

if (msg.Type == MessageType.TextMessage) < //. >

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

await bot.SendTextMessageAsync(msg.Chat.Id, «Hello, » + msg.From.FirstName + «!»);

Асинхронно отправляем текстовое сообщение пользователю. Первым аргументом метода указывается идентификатор чата адресата. Вторым – сам текст сообщения. Для проверки работы бота, мы написали свой HelloWorld с блекджеком и плюшками. Бот будет приветствовать пользователя, обращаясь к нему по имени.
Вот так выглядит код метода Bot_OnMessage:

private static async void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e) < Message msg = e.Message; if (msg == null) return; // Если сообщение текстовое if (msg.Type == MessageType.TextMessage) < await bot.SendTextMessageAsync(msg.Chat.Id, «Hello, » + msg.From.FirstName + «!»); >>

Перед запуском нужно ещё написать пару строк кода в точке входа в программу.

. bot.SetWebhookAsync(); .

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

var me = bot.GetMeAsync().Result; Console.Title = me.Username;

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

bot.StartReceiving(); Console.ReadLine(); bot.StopReceiving();

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

Весь код класса Program
using System; using Telegram.Bot; using Telegram.Bot.Types; namespace TelegramBotYoutube < class Program < private static readonly TelegramBotClient bot = new TelegramBotClient(«»); static void Main(string[] args) < bot.OnMessage += Bot_OnMessage; bot.SetWebhookAsync(); var me = bot.GetMeAsync().Result; Console.Title = me.Username; bot.StartReceiving(); Console.ReadLine(); bot.StopReceiving(); >private static async void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e) < Message msg = e.Message; if (msg == null) return; // Если сообщение текстовое if (msg.Type == MessageType.TextMessage) < await bot.SendTextMessageAsync(msg.Chat.Id, «Hello, » + msg.From.FirstName + «!»); >> > >

Первый запуск

Окно консоли сменило название на имя бота. Отлично. Теперь отправим боту сообщение через Telegram. Правда, сперва его нужно найти.

Нашёлся, нажимаем кнопку Start. И сразу же бот приветствует нас. Но мы же ничего не писали? Это не так. При нажатии кнопки старт, боту оправляется текст «/start». А на любое текстовое сообщение бот приветствует пользователя.

И это всё… что он пока умеет.
Спасибо за внимание! Конец первой части.

Для большей наглядности можно посмотреть видеоурок:

Источник: savepearlharbor.com

Рейтинг
( Пока оценок нет )
Загрузка ...