Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
vp-webdev
7 лет назад

Кто такие боты и где они обитают

Многие из нас используют Telegram как основное средство общения. И я думаю, что не найдется на Голосе человека, который не сталкивался бы с ботами. На октябрь 2017 в Telegram было активно 800 тысяч ботов, регулярно используемые 52 миллионами человек. Ежедневно эта цифра растет. Тысячи ботов отвечают за разные задачи, у некоторых ботов аудитория в сотни тысяч человек, у некоторых один, но это не меняет сути - боты вещь полезная.

В данной статье для новичков я хочу рассказать как написать самого простого, но весьма полезного бота для Телеграм на примере собственного бота @GbgRubBot. Этот бот был написан по просьбе @dinosaurmike, которому было лень высчитывать прямой курс GBG к рублю, путем вычисления его из курса на Bittrex и курса биткоина в Exmo. Код этого бота далек от красоты и идеальности, и был написан за 20-30 минут, однако продолжает работать, примеры кода я приводить не буду, почему - поймете сами чуть позже. Эта статья написана для новичков в программировании, по при желании может стать стартом для понимания механизмов работы ботов.
Источник: pikabu.ru(Источник изображения: 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 Подписывайтесь, будет много разного, но интересного

3
67.138 GOLOS
На Golos с August 2017
Комментарии (5)
Сортировать по:
Сначала старые