С помощью ботов можно упростить себе задачу коммуникации с пользователями, создав для них умного помощника. Боты понимают текстовые команды и могут обращаться к API вашего вебсайта, сервиса или быть самостоятельным продуктом с уникальными услугами. Обычно, для создания бота требуется сервер, но в этой статье мы разберем подход, позволяющий обойтись без него. Он идеален при резких колебаниях количества запросов и прекрасно выдерживает пиковые нагрузки.
Настроить Telegram-бота на Облачных функциях, используя официальный API и заготовленный нами пример, можно в 3 этапа:
- Запрограммировать логику работы Telegram-бота.
- Зарегистрировать нового бота в Telegram.
- Связать бота и его логику воедино.
Запрограммировать логику работы Telegram-бота
Чтобы упростить задачу, мы написали пример такого бота. Его исходный код доступен по ссылке github.com/selectel/cloud-telegram-bot. Он понимает команды:
/start
с приветственным сообщением;
Как создать своего бота в Telegram + бонус|| Kamilla Shine
/sticker
с ответом в виде стикера;
/getwebhook
чтобы вы могли получить информацию о настройках вашего бота;
/setwebhook
для настройки вашего бота, но об этом позже.
Пройдите следующие шаги с нашим примером бота, чтобы освоиться:
- Скачайте исходный код как архив («Clone or download» → «Download ZIP») и распакуйте его.
- Внутри должно быть:
- «setup.py» с минимальным кодом, чтобы Python-окружение приняло содержимое папки за модуль для установки;
- «requirements.txt» с описанием зависимостей;
- «bot» — папка с исходным кодом нашего бота.
Теперь у нас есть API, реализующее логику ответов бота. Следующим этапом мы зарегистрируем его в Telegram.
Зарегистрировать нового бота в Telegram
Чтобы Telegram знал о существовании нашего бота, его нужно зарегистрировать. Для этого существует только один способ:
/newbot
Теперь у нас API, регистрация бота в Telegram и его токен. Осталось связать это вместе.
Связать бота и его логику воедино
На этом этапе надо сделать так, чтобы бот знал токен пользователя, а Telegram знал, где его API:
Далее нужно направить сообщения, которые пользователи отправляют в Telegram, нашему боту — в то API, которое для него создали.
/setwebhook
- Бот ответит тем, что получит из Telegram API. Если все хорошо, это будет «true».
- Чтобы удостовериться в том, что все корректно, отправьте команду:
/getwebhook
- В ответ должна прийти информация о webhook, в том числе указанный вами URL.
Заключение
Готов для работы бот, доступный в Telegram, отвечающий на команды и способный автоматически масштабироваться под нагрузкой и без сервера.
Зарегистрируйтесь в панели управления
И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.
Инструкция
Как автоматизировать подготовку к собеседованиям с помощью Telegram-бота
Как сделать бота в телеграмме | Телеграм боты для начинающих
29 сентября 2023
Инструкция
Как реализовать очередь в Redis
14 сентября 2023
Инструкция
Как генерировать истории с помощью ChatGPT и Telegram
Источник: selectel.ru
Создаем бота в BotFather: инструкция, команды, настройки
BotFather – «бот над всеми ботами» в Телеграмме. БотФазер представляет собой интерфейс доступа к API (Application Programming Interface) мессенджера Telegram. С помощью BotFather вы можете создавать ботов и управлять существующими.
Что такое бот в Телеграмме и чем отличается от обычного пользователя?
- Для создания бота не нужен номер телефона (с декабря 2022 Телеграмм убрал это требование и для обычных юзеров).
- Нет статуса «онлайн» или «последний визит». Вместо этого прописывается «бот».
- Bot не может сам начать общение с пользователем. Но юзеры могут вызвать его в чате.
- Имя пользователя должно заканчиваться на «bot».
- У ботов в Телеграмме ограниченное облачное хранилище (cloud storage), поэтому старые сообщения удаляются после их обработки.
В официальной документации Телеграмма указано, что пользователи и разработчики создали более 10 млн ботов.
Варианты использования разные: интеграция с другими сервисами (1С, умный дом, сайт), перевод текстов, напоминания, опросы, отображение погоды, расчет курсов валют и многое другое.
Как создать бота для Телеграма через BotFather: инструкция и пошаговые действия
Чтобы сделать бота в Telegram без кода и навыков программирования, необходимо:
В диалоговом окне указываем команду /start, чтобы запустить сервис. Система показывает доступные команды (редактирование бота, настройки, игры). Вписываем /newbot, чтобы запустить процесс создания.
Система просит указать название (к примеру, в нашем случае ChatLabs_bot). После этого необходимо вписать username – BotFather сразу предупреждает, что юзернейм бота должен заканчиваться на слово bot. Вписываем ChatLabs_bot.
В случае успеха видим сообщение о том, что наш бот для Телеграмма создан и готов к работе.
На этом этапе вы получаете токен для доступа к HTTP API Telegram. Не передавайте token третьим лицам.
Все! Вы создали бота для Телеграма при помощи БотФазера. В информационном сообщении найдете ссылку на него (в нашем примере это t.me/ChatLabs_bot).
Если перейти по урлу, увидите бота.
Чтобы начать работу с ним, нажмите «Старт».
Создать бота в Телеграме самостоятельно и без навыков программирования можно. Но если вы хотите добавить кастомные функции (вывод погоды, показ курса валют, близлежащих заведений и так далее), то необходимо написать код. К примеру, мы в ChatLabs используем Python и реализуем для заказчиков проекты любой сложности.
Создавали бота доставки еды (интеграция с iiko, прием оплат, уведомление пользователя о статусе заказа), бота для дилера напольных покрытий (добавление партнеров через 1С, просмотр остатков на складе, поиск аналогов, работа с корзиной), чат-бота для службы такси (заказ авто на определенное время, заявки на работу для водителей и другие). Предлагаем посмотреть примеры решений для интернет-магазина, стартапа, мероприятия.
Чтобы посмотреть список ваших ботов, просто задайте команду /mybots. В диалоговом окне увидите названия.
Команды BotFather: редактирование и удаление ботов в 2023 году в 1 клик
Выше мы уже разобрали 2 основные команды БотФазера:
- /newbot – создание нового бота;
- /mybots [beta] – получение списка существующих.
Редактирование ботов осуществляется командами:
- /setname – выбрать имя (или изменить его). Это то, что будет отображаться в диалоговом окне.
- /setabouttext – добавить приветствие. Это тот текст, который будет видеть пользователь до того, как нажмет на «START» для запуска.
- /setdescription – указать описание (если нужно). Дескрипшен будет виден в профиле. Как правило, в описании перечисляют, как работает бот, для чего создан, какие правила.
- /setuserpic – установить фото / аватар. Обратите внимание, что есть 2 вида: ботпикча и дескрипшен-пикча. Первый используется как аватар. Второй появляется в блоке What can this bot do. В качестве дескрипшен-фото принимаются и GIF (требования к разрешению фото – 640×360, ограничения по гифкам – 320×180, 640×360 or 960×540).
- /setcommands – установить список команд, которые будут доступны для использования. Система просит прописать их в формате «command1 — Description» (т.е. «команда – описание»). На практике это выглядит как Buy – купить, Order – заказать.
- /deletebot – удалить бота. Сделать это в 1 клик не получится. Система получает команду, затем просит вас еще раз подтвердить действие. Только после этого удаляет.
Управление настройками осуществляется при помощи команд BotFather. Интерфейс интуитивно понятный.
Настройки BotFather: токен, платежи, управление группами, передача прав и другие
Вы можете задать команду /mybots, выбрать нужного и использовать кнопки управления.
API token в Телеграм от BotFather: как получить и сгенерировать новый
Чтобы увидеть токен для доступа к API Telegram, кликаем на «API token». Система автоматически покажет уникальную комбинацию из букв, цифр, знаков препинания.
Если старый токен попал в руки мошенников или был утерян, используйте команду «Revoke current token».
Bot Settings в Telegram от BotFather: добавление в группы, права админа, privacy mode и другие
В каждой из вкладок находятся дополнительные настройки.
- «Allow Groups?» – можно или нельзя добавлять бота в группы.
- «Group Privacy» – активирует или деактивирует режим конфиденциальности «Privacy mode».
- «Group Admin Rights» – какие права у администратора (добавлять новых администраторов, приглашать новых пользователей, удалять сообщения, банить / разбанить юзеров, управлять голосовыми, а также другие).
- «Channel Admin Rights» – аналогично предыдущему, но касается прав администратора канала.
- «Domain» – привязать веб-сайт, чтобы использовать виджет входа в Telegram.
- «Payment» – список доступных платежных систем для вашего бота (Юкасса, Сбербанк, PayMega, CasCad, iPay88, Робокасса и другие). Доступно более 15 методов проведения платежей для 200+ стран мира.
Чтобы передать Телеграмм-бота другому лицу, используйте «Transfer ownership». В новом окне необходимо будет указать логин рецепиента – того, кому передаете бота.
Что такое Inline mode (инлайн мод) в ботах Телеграмм?
Режим встроенных запросов для взаимодействия с ботом.
Классический вариант – команды через кнопки или ввод /mybots и тому подобных.
Чтобы активировать опцию, задаем команду БотФазеру /setinline. Дальше указываем текст-заполнитель, который будет показываться в поле ввода после указания имени бота.
Inline mode в Telegram поддерживает 20+ типов контента, среди которых:
Вот как это выглядит в Телеграмме:
Как сделать игру в Телеграмм: кнопки BotFather и настройки развлечений
Настройки БотФазера позволяют создавать HTML5-игры, а затем предлагать их в группе или приватных чатах. Типичные примеры – викторины, шашки и шахматы, а также другие. Список команд BotFather, которые используются для создания, редактирования, просмотра и удаления игр.
Созданную игру можно отправлять как обычное сообщение или при помощи инлайн-режима (с кнопкой для старта). Когда пользователь нажимает на запуск игры, бот получает callback с информацией о выбранном развлечении. Дальше система отвечает юзеру ссылкой. Игра открывается во встроенном браузере.
Теперь вы знаете основные кнопки BotFather и настройки для управления ботами. Чтобы наш ChatLabs_bot заработал полноценно, необходимо взаимодействовать с Telegram Bot API и писать код.
Забирай бесплатный чек-лист
«ТОП-10 ошибок
при создании Чат-бота»
Источник: chatlabs.ru
Как создать простого бота для Телеграм на PHP
Создадим простого бота для мессенджера Telegram с использованием PHP. Данная статья создана исключительно в поучительных целях и не претендует на полноту или правильность подхода. Весь код бота очень простой и может быть освоен начинающими PHP-разработчиками.
Предупреждаю сразу профессионалов и перфекционистов от программирования — вам здесь делать нечего . Никаких фреймворков и гитхабов! Все будет очень просто и примитивно, но работать будет. И это главное. Всем счастья
Шаг 1: подготовка
Что нам понадобится:
- Веб-сервер с работающим PHP 5.6 и выше — не локальный веб-сервер, а веб-сервер на хостинге, что важно! Так как сервисы Telegram должны будут видеть вашего бота по внешней URL-ссылке;
- Веб-сервер должен работать через https — то есть на веб-сервере должен быть установлен давно (больше суток назад) зарегистрированный SSL-сертификат. Достаточно будет бесплатного Let’s Encrypt SSL-сертификата;
- Доступ к файлам на этом сервере, конечно же — иначе как мы что-то сделаем;
- Установленная кодовая страница UTF-8 на сервере по-умолчанию или добавьте в файл .htacces в корне сайта строку AddDefaultCharset utf-8;
- Аккаунт в мессенджере Telegram;
Шаг 2. Регистрация вашего бота в Телеграм
Да, да. Бот еще даже не создан, но перед этим его уже нужно зарегистрировать, чтобы получить уникальный идентификатор, чтобы в дальнейшем обращаться к BOT API Telegram.
Шаг 3. Создаем код бота
Будем делать прямо в корне сервера (не самый верный подход, можно создать папку bot, а в ней уже файл verysimple_bot.php). Для этого на сервере создадим файл verysimple_bot.php в котором и будет весь код бота. Не забываем, что весь код в файле verysimple_bot.php должен быть в кодировке UTF-8.
Для редактирования файлов кода и заброске их на сервер удобно использовать FAR Manager — в нем есть и подсветка синтаксиса и FTP/SFTP клиент для копирования файла на сервер.
Делаем заготовку бота, который сможет выдавать список команд и информацию о нас:
Шаг 4. Делаем WebHook и конкретизируем код бота
-
Чтобы все заработало, нужно сособщить сервису Телеграм, что наш бот лежит там-то — используй его код для такого-то бота verysimple_bot.
Для этого нужно сформировать ссылку, которая называется WebHook и её мы и сообщим телеграму:
https://api.telegram.org/bot 1234567899:AAKJhkkjhkjhKhKhjkhkhk_kJhgkjhJhgjghjhG /setWebhook?url= https://www.mysite.ru/verysimple_bot.php
Не забываем где красное заменяем на свои данные!
Как сформируете эту ссылку — вставьте её в браузер и запустите!
- Пользователь в диалоге с ботом пишет запрос, например /help
- Telegram Bot API через WebHook, что мы установили, берет этот запрос и отправляет в код бота
- Мы в боте получаем его, анализируем, видим например, /help и через Telegram Bot API и
функцию message_to_telegram отправляем ответ — который появлется в диалоге как ответ бота.
Шаг 5. Добавим возможность делать заявки через бота
Заявкой будем считать сообщение или вопрос, которое можно будет отправить через нашего бота какому-то пользователю, назовем его менеджер компании. То есть нам нужно организовать такую цепочку:
- Пользователь запрашивает у бота «Оставить заявку», например набрав команду /order
- Бот входит в режим ожидания текста Заявки
- Если пользователь ввел текст и нажал Enter, только тогда отослать это сообщение заранее запрограммированному по менеджеру компании.
Получим идентификатор chat_id пользователя кому нужно отсылать заявки:
- Помните наш файл message.txt — вот он сейчас понадобится
- Присоединяемся к нашему боту тем пользователем, кому будем слать заявки (менеджер компании)
- Сразу открываем файл message.txt и смотрим блок: [chat]
$order_chat_id = ‘123456789’; //chat_id менеджера компании для заявок $bot_state = »; // состояние бота, по-умолчанию пустое
Сохраняем состояние бота для каждого пользователя
Далее, важный момент: у нас любой присоединившийся пользователь сможет сделать заявку, и чтобы бот понимал, что находится в режиме ввода заявки именно с этим пользователем, мы должны сохранять и считывать состояния бота для каждого пользователя отдельно!
Напишем две функции: set_bot_state($chat_id, $data) и get_bot_state($chat_id) — которые сохраняют текущее состояние бота и получают соответсвенно, для нужного пользователя. Сохранять будем в подпапке /users на сервере, которую создадим предварительно не забыв дать права на запись. Состояния будут хранится все в тех же текстовых файлах с именами chat_id пользователей и содержать последнюю команду:
// сохранить состояние бота для пользователя function set_bot_state ($chat_id, $data) < file_put_contents(__DIR__ . ‘/users/’.$chat_id.’.txt’, $data); >// получить текущее состояние бота для пользователя function get_bot_state ($chat_id) < if (file_exists(__DIR__ . ‘/users/’.$chat_id.’.txt’)) < $data = file_get_contents(__DIR__ . ‘/users/’.$chat_id.’.txt’); return $data; >else < return »; >>
Теперь дополним код бота, добавив запись и отлов состояния и отправив заявку менеджеру компании, если состояние отправки заявки.
Шаг 6. Регистрация команд бота
Вот и все — простой бот работает! Всем спасибо, если дочитали и что-то заработало.
Николай Комарков
Источник: www.novelsite.ru