Кто такие боты и где они обитают
Многие из нас используют Telegram как основное средство общения. И я думаю, что не найдется на Голосе человека, который не сталкивался бы с ботами. На октябрь 2017 в Telegram было активно 800 тысяч ботов, регулярно используемые 52 миллионами человек. Ежедневно эта цифра растет. Тысячи ботов отвечают за разные задачи, у некоторых ботов аудитория в сотни тысяч человек, у некоторых один, но это не меняет сути - боты вещь полезная.
В данной статье для новичков я хочу рассказать как написать самого простого, но весьма полезного бота для Телеграм на примере собственного бота @GbgRubBot. Этот бот был написан по просьбе @dinosaurmike, которому было лень высчитывать прямой курс GBG к рублю, путем вычисления его из курса на Bittrex и курса биткоина в Exmo. Код этого бота далек от красоты и идеальности, и был написан за 20-30 минут, однако продолжает работать, примеры кода я приводить не буду, почему - поймете сами чуть позже. Эта статья написана для новичков в программировании, по при желании может стать стартом для понимания механизмов работы ботов.
(Источник изображения: pikabu.ru)
Регистрируем бота
В Телеграме есть отец всех ботов - @BotFather. Пишем ему /start затем /newbot, придумываем боту имя, заканчивающееся на bot и все, ваш бот зарегистрирован. Проще некуда. В ответ вам придет ID бота, одновременно являющийся и токеном. Проверяем по ссылке https://api.telegram.org/botТОКЕНЗДЕСЬ/getMe
Когда все хорошо - результат примерно такой:
{"ok":true,"result":{"id":.......,"is_bot":true,"first_name":"GBG-RUB bot","username":"GbgRubBot"}}
Собираем данные
В моем примере бот оперирует данными, которые он собирает через открытые API. Для этого используется отдельный скрипт на php, который стоит в планировщике, каждые 5 минут подтягивает курс с каждой из бирж, перемножает его и сохраняет в базу данных. В последующем бот оперирует этими данными, то есть отдает вам последнюю строчку базы.
Пишем бота
Ну как пишем... Не вижу большого смысла приводить здесь код бота по очень простой причине. Он полностью скопирован отсюда https://core.telegram.org/bots/samples/hellobot Это официальный пример бота от Telegram. Да, это простейший пример того, как из helloworld можно сделать работающую вещь)
Единственное, что пришлось поменять - это выдачу бота. При запросе "Узнать курс" бот соединяется с базой данных, берет оттуда последнюю строчку, и отправляет вам.
Подключаем бота к Telegram
Для того, чтобы бот начал отвечать вам на ваши сообщения, Телеграм должен знать кому, а точнее чему пересылать то, что вы там ему написали. Соответственно вам нужно настроить webhook. Сделать это едва ли не проще, чем создать бота. Формируем ссылку https://api.telegram.org/botТОКЕНБОТА/setWebhook?url=https://адрес/вашего/бота.php и переходим по ней в вашем браузере. Все, вебхук установлен :)
https у вашего сайта должен быть обязательно
Результаты
В результате вы получите работающего бота. Я не знаю что будет делать ваш бот, но если вы просто соберете его по инструкции - он станет просто с вами здороваться. Этого достаточно, чтобы понять механизм его работы и начать что-то пробовать в ботостроении. На самом деле существует множество удобных SDK для написания ботов на разных языках программирования, есть куча способов использовать BotAPI, но все это уже постигается самостоятельно после того, как вы попробовали сделать вашего самого первого, маленького и глупого бота.
Спасибо что дочитали. Автор: @dmitmix Подписывайтесь, будет много разного, но интересного