Как создать чат бота в телеграмме: пошаговый гид

Содержание
  1. Шаг №0: немного теории об API Telegram-ботов
  2. Как создать канал в Телеграмме
  3. Создать Телеграмм канал с помощью компьютера
  4. Создать Телеграмм канал с помощью мобильного устройства
  5. Чем полезны
  6. Как создать бота с помощью конструктора
  7. Как подключить бота
  8. Сервисы для создания ботов в Telegram
  9. Manybot
  10. Chatforma
  11. Puzzlebot
  12. Telegrambot biz
  13. Примеры популярных ботов
  14. Можно ли создать бота в Телеграме для заработка?
  15. Как в SendPulse создать бота в Telegram
  16. Создайте бота в Telegram
  17. Подключите бота к вашему аккаунту в SendPulse
  18. Запуск автоответов и цепочек сообщений чат-бота
  19. Предустановленные триггеры
  20. Триггер «Приветственная серия»
  21. Стандартный автоответ, если бот не распознал фразу пользователя
  22. Триггер «Отписка от бота»
  23. Триггеры, которые создаются вручную
  24. Тип триггера «После подписки»
  25. Тип триггера «Команда»
  26. Создание чат-бота в телеграме
  27. Создаём чат-бот через сервис BotFather
  28. Настраиваем чат-бот
  29. Примеры чат-ботов в Telegram
  30. Чат-бот шоумена и ведущего мероприятий
  31. Чат-бот психолога
  32. Рассылка обновлений от новостного портала
  33. Чат-бот страховой компании
  34. Определение
  35. Создаем базу данных
  36. Создание класса Stopwatch
  37. Выбор библиотеки PHP
  38. Запуск Webhook скрипта
  39. Создание команд
  40. Добавление клавиатуры
  41. Puzzlebot
  42. Создание и регистрация SSL Webhook
  43. Создание бота
  44. Как сделать кнопку «Поделиться» в Телеграм
  45. Введение
  46. Создаем кнопку «Поделиться» в Телеграм с помощью FleepBot
  47. Создаем кнопку «Поделиться» в Telegram с помощью ботов
  48. Заключение
  49. Как научить бота говорить

Шаг №0: немного теории об API Telegram-ботов

Начать руководство стоит с простого вопроса: как создавать чат-ботов в Telegram?

Ответ очень простой: для чтения сообщений отправленных пользователями и для отправки сообщений назад используется API HTML. Это требует использования URL:

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

Токен выглядит приблизительно так:

Для выполнения запросов используются как GET, так и . Многие методы требуют дополнительных параметров (методу , например, нужно передать chat_id и текст). Эти параметры могут быть переданы как строка запроса URL, application/x-www-form-urlencoded и application-json (кроме загрузки файлов). Еще одно требование — кодировка UTF-8.

После отправки запроса к API, вы получаете ответ в формате JSON. Например, если извлечь данные с помощью метода , ответ будет такой:

Если значение ‘ok’ — true, значит запрос был успешным и результат отобразится в поле ‘field’. Если false — в поле ‘description’ будет сообщение об ошибке.

Список всех типов данных и методов API Telegram-бота можно найти здесь (ENG) или с переводом здесь (ру) .

Следующий вопрос: как получать пользовательские сообщения?

Есть два варианта.

Первый — вручную создавать запросы с помощью метода . В качестве объекта вы получите массив объектов . Этот метод работает как технология длинных опросов (long polling), когда вы отправляете запрос, обрабатываете данные и начинаете повторяете процесс. Чтобы избежать повторной обработки одних и тех же данных рекомендуется использовать параметр .

Второй вариант — использовать webhooks. Метод нужно будет применить только один раз. После этого Telegram будет отправлять все обновления на конкретный URL-адрес, как только они появятся. Единственное ограничение — необходим HTTPS, но можно использовать и сертификаты, заверенные самостоятельно.

Как выбрать оптимальный метод? Метод лучше всего подходит, если:

  1. Вы не хотите или не можете настраивать HTTPS во время разработки.
  2. Вы работаете со скриптовыми языками, которые сложно интегрировать в веб-сервер.
  3. У бота высокая нагрузка.
  4. Вы меняете сервер бота время от времени.

Метод с Webhook лучше подойдет в таких случаях:

  1. Вы используете веб-языки (например, PHP).
  2. У бота низкая нагрузка, и нет смысла делать запросы вручную.
  3. Бот на постоянной основе интегрирован в веб-сервер.

В этом руководстве будет использоваться метод .

Еще один вопрос: как создать зарегистрировать бота?

@BotFather используется для создания ботов в Telegram. Он также отвечает за базовую настройку (описание, фото профиля, встроенная поддержка и так далее).

Существует масса библиотек, которые облегчают процесс работы с API Telegram-бота. Вот некоторые из них:

  • PythonpyTelegramBotAPI (TeleBot)TelepotAiogram
  • PHPTelegram Bot API — PHP SDK + Laravel Integration
  • JavaTelegramBots
  • NodeJSTelegram Node Bot
  • RubyTelegram Bot
  • C#Telegram Bot API LIbrary

По своей сути, все эти библиотеки — оболочки HTML-запросов. Большая часть из них написана с помощью принципов ООП. Типы данных Telegram Bot API представлены в виде классов.

В этом руководстве будет использоваться библиотека pyTelegramBotApi.

Как создать канал в Телеграмме

Создать канал в Telegram можно как с помощью мобильного устройства, так и с помощью компьютера. Предварительно необходимо установить мессенджер Telegram на необходимое устройство.

Важный момент! На один телефонный номер можно зарегистрировать не более 8 публичных Telegram-каналов.

Создать Телеграмм канал с помощью компьютера

В десктопной версии мессенджера Telegram для создания канала необходимо кликнуть по значку меню, расположенному в левом верхнем углу экрана.

После этого откроется меню с настройками пользовательского профиля и программы. Нужно кликнуть по кнопке «Создать канал».

Укажите название и краткое описание создаваемого канала.

Укажите тип канала и его имя (не менее 5 символов) для короткой ссылки.

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

Создать Телеграмм канал с помощью мобильного устройства

На Android -устройствах процесс создания Telegram-канала состоит из пяти шагов:

  1. Тапните по кнопке «Создать чат».
  2. Выберите пункт «Создать канал».
  3. Укажите название создаваемого канала. Также можно кратко рассказать о его тематике новым подписчикам.
  4. Выберите тип Telegram-канала и укажите название для короткой ссылки (не менее 5 символов).
  5. Разошлите приглашения своим друзьям из списка контактов. Этот шаг не обязателен. Его можно пропустить, тапнув по стрелке.

Чем полезны

Как раз боты и стали одним из главных трендов Телеграма. Напомню, что они представляют из себя роботизированные диалоги внутри мессенджера, способные быстро решать множество задач:

  • показывать новости по заданной теме,
  • находить и скачивать любую информацию,
  • отвечать на часто задаваемые вопросы,
  • присылать обновления с сайта,
  • заменять или дополнять email-рассылку,
  • могут проводить опросы,
  • играть с посетителями и др.

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

Моя подборка полезных ботов позволит познакомиться с ними поближе.

Как создать бота с помощью конструктора

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

Как подключить бота

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

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

Сервисы для создания ботов в Telegram

Специальные платформы-конструкторы позволят быстро стать разработчиком ботов с нуля. Их насчитывается более десятка, с каждым из них можно пошагово выполнить нужные действия.

Manybot

Бот-конструктор предлагает возможность делать рассылки подписанным пользователям, формировать меню и подменю, подключать RSS, Twitter, YouTube и VK. Функциональность предоставляется бесплатно, но нельзя отключить рекламные сообщения.

Manybot — один из бесплатных ботов.

Chatforma

Сервис без оплаты работает несколько дней, затем следует выбрать тариф. Сообщество подписчиков поддерживается при помощи видеоуроков, конкурсов, проводятся опросы. «Личный кабинет» понятный, предоставляет необходимые инструменты: форму ввода, рассылки, иные опции.

Puzzlebot

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

Telegrambot biz

Создает простые боты, способные рассылать текст, изображения, документы, прикреплять клавиатуру. Работает бесплатно и без рекламы.

Примеры популярных ботов

Итак, какие же боты уже есть в мессенджере? Знакомим с главным ботом и еще 10 популярными, которые хорошо покажут возможности таких программ.

BotFather — иначе говоря, отец ботов. Помогает создать нового помощника или игру, прописать все функции. Задать имя, аватар, настройки и другие базовые вещи. Первый и обязательный бот, которого необходимо запустить всем, кто хочет создать своего.

Searchee Bot найдет все нужные каналы по тематике или ключевому слову. Работает на 4 языках и содержит более 270 000 каналов.

Post Bot превращает разные элементы информации в красивый и информативный пост, который легко читать именно в мессенджере.

Напомни мне — бот создает напоминания о важных делах или встречах. Очень удобен для быстрой записи дел, адаптивен к простому тексту.

Stickers — бот для создания и отслеживания статистики стикеров. Создавайте, редактируйте и отслеживайте самые популярные.

InstaSave скачивает фото и видео из Instagram. Достаточно отправить ему ссылку с нужным постом.

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

Grammar Checker исправляет ошибки в предложениях на английском языке. А еще, помогает с рерайтом — перефразировать слова и фразы можно также в боте.

SoberuBot незаменим для тех, кто продвигает свой аккаунт в Instagram. Собирает не только подписчиков, но и активную аудиторию конкурентов. А присылает данные в виде логинов или ID.

God, Not Bot — отличный пример русскоязычной игры в мессенджере. Ваша роль — руководитель в племени с воинами, людьми и шаманами. Распределяйте ресурсы, принимайте решения и попробуйте увеличить численность своего племени.

Hot Or Bot — сервис для знакомств внутри мессенджера. Если заполнить своеобразную анкету, он подберет вам собеседника.

Можно ли создать бота в Телеграме для заработка?

Итак, вы уже знаете, как создать бота в Телеграме и правильно его настроить – получится ли использовать эти знания для заработка? Теоретически – да, однако для получения хорошей прибыли лучше обратиться за помощью к профессионалам, имеющим необходимые знания в области программирования. А вообще, зарабатывать на собственной программе в Telegram вполне реально, причем даже разными способами.

Например, вы можете подключиться к партнёрской сети, выбрать оффер и периодически показывать рекламу товара или услуги подписчикам. И за каждый переход и заказ по вашей ссылке на баланс будет начисляться определенная сумма, указанная на странице с предложением. Причем продвигать можно как реальные товары, так и разные курсы от других авторов.

Также нельзя забывать про то, что можно создавать ботов в Телеграме, а затем продавать их. Но для этого придется стать более-менее хорошим программистом, разбирающимся хотя бы в языке Python. А дальше алгоритм получения прибыли выглядит следующим образом: вы регистрируетесь на бирже фриланса, ищите заказ, выполняете работу и получаете оплату. Как мы сказали ранее, за качественного бота могут заплатить и 200, и 300 долларов.

А еще вы можете зарабатывать на рекламе других каналов, договорившись с администраторами. Стоимость одного поста зависит от количества подписчиков и активности аудитории. Но даже при наличии 1000 реальных пользователей получится брать за рекламу от двух тысяч рублей. А если фолловеров будет больше, то и цены вырастут в разы.

Как в SendPulse создать бота в Telegram

Теперь расскажу подробно о функционале чат-ботов в Telegram на примере простого бота для выдуманной кулинарной школы Best Cook:

Так выглядит переписка с чат-ботом для пользователя

А вот схема этого чат-бота в визуальном редакторе SendPulse:


Схема бота в визуальном редакторе

Чтобы построить такую цепочку, вам нужно сначала создать своего бота в Telegram, а затем подключить его к SendPulse — с этого и начнем.

Создайте бота в Telegram

В поиске Telegram найдите @botfather и создайте своего бота с помощью команды «/newbot». На этом этапе вам нужно определиться с именем бота.

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


Цифровой токен вашего бота, который нужно вставить в аккаунте SendPulse

Подключите бота к вашему аккаунту в SendPulse

В аккаунте SendPulse выберите раздел «Чат-боты», вкладку «Управление ботами», где подключаются чат-боты для Telegram, Facebook Messenger и ВКонтакте. В строку Telegram введите цифровой токен, который вы получили при создании бота через @botfather и нажмите «Подключить».


Вставляем токен в разделе «Чат-боты» аккаунта SendPulse

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


Подписываемся на собственного бота

После подключения все боты, которыми вы управляете, будут показаны в списке в разделе «Управление ботами». В нашем случае — это бот выдуманной кулинарной школы Cooking School.


Чат-бот в Telegram подключен к аккаунту SendPulse

Мы подключили чат-бота и на его примере создадим цепочку сообщений. Но вначале я покажу, как в SendPulse запускается отправка автоответов и цепочек сообщений.

Запуск автоответов и цепочек сообщений чат-бота

В сервисе чат-ботов SendPulse есть понятие «триггер» — это условие, по которому отправляется автоответ или запускается последовательная цепочка сообщений.

Вы можете использовать триггеры двух видов: предустановленные и те, что создаются вручную.

Предустановленные триггеры

В личном кабинете SendPulse перейдите во вкладку «Чат-боты», откройте ваш подключенный чат-бот в Telegram. В разделе «Структура бота» вы увидите такие триггеры: «Приветственная серия», «Стандартный ответ» и «После отписки».


Предустановленные триггеры

Триггер «Приветственная серия»

Его удобно использовать для отправки приветственного сообщения после подписки и вы можете изменить его под себя.


Настройка приветственной серии после подписки на бота

В приветственном сообщении рекомендуется рассказать, как отписаться от бота, если ваши сообщения окажутся пользователю не интересны. Для отписки от бота в блоке по умолчанию установлены стандартные команды «/unsubscribe» и «/stop». Этот текстовый блок вы можете редактировать или удалить.

Отправлять приветственное сообщение необязательно, но оно делает ваш чат-бот понятным для подписчика — сразу ясно, чем чат-бот может быть полезен и чего от него ожидать. На ваш выбор вы можете отключать данный триггер, но мы рекомендуем его оставить и придать боту человечное лицо, придумать персонажа-помощника, как на примере ниже.

Пример приветственного сообщения чат-бота

Стандартный автоответ, если бот не распознал фразу пользователя

Прописать цепочки на все запросы пользователя невозможно. Если человек напишет фразу с ключевым словом, для которого не настроен триггер, ему отправится сообщение по «Стандартному автоответу».

Придумайте подходящее сообщение для такого случая. Оно должно быть универсальным и перенаправлять подписчика на другой канал связи с вами, чтобы он все-таки мог решить свой вопрос. Например, укажите в тексте сообщения номер телефона или добавьте ссылку на форму обратной связи.

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


Пример цепочки для триггера «Стандартный ответ»

Подробнее о блоке «Действие» и об остальных блоках цепочки автоответов в Telegram расскажем ниже.

Триггер «Отписка от бота»

Используется, чтобы отправить сообщение после ввода команды отписки. Он запускает автоответ с оповещением, что пользователь успешно отписался от чат-бота. В конструкторе ответ стандартный, но я изменила текст сообщения и добавила картинку.

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


Автоответ «Отписка от бота»

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

Триггеры, которые создаются вручную

Чтобы создать условие, по которому запустится автоответ или цепочка сообщений, в разделе «Структура бота» нажмите «Создать триггер» и приступайте к его настройке.


Добавление триггера вручную

В системе существует два типа триггеров, которые вы можете настроить самостоятельно. Тип триггера определяет, по какому условию будет запускаться сообщение или цепочка: в ответ на подписку или на ключевое слово во фразе подписчика («Команда»).

Тип триггера «После подписки»

Запускает цепочку автоответов после подписки через интервал, который вы указываете в минутах, часах или днях.


Добавление триггера «После подписки»

Этот тип триггера можно использовать вместо предустановленного триггера «Приветственная серия» и отправлять с его помощью приветственное сообщение.

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

Тип триггера «Команда»

Реагирует на ключевые слова в сообщении подписчика и запускает нужную цепочку автоответов. Прописать ключевые слова можно в настройках триггера.

Обратите внимание, что прописывать нужно ключевые слова и словосочетания. Можно добавить несколько разных слов, по которым будет запускаться цепочка, например: «доставка», «отправка», «самовывоз», «получение»


Добавление триггера «Команда»

Создали триггер — приступайте к созданию цепочки сообщений.

Создание чат-бота в телеграме

Для начала необходимо зайти в свой аккаунт в телеграмме или скачать приложение через App Store или Play Маркет. Для установки приложения на компьютер необходимо скачать установочный файл с официального сайта.

Следующий шаг как создать бота в телеграмме самостоятельно бесплатно — создание своего помощника с помощью специальных сервисов-конструкторов. Самые популярные:

  • Puzzlebot;
  • Manybot;
  • Botobot;
  • Bottap;
  • BotFather.

У каждого сервиса есть платные и бесплатные версии работы, также будет отличаться функциональные возможности будущего помощника. Разберем как создавать ботов в телеграме на телефоне.

Создаём чат-бот через сервис BotFather

Открываем приложение телеграма и в поисковой строке набираем имя «BotFather». Это официальный системный бот приложения, который помогает с регистрацией других ботов в мессенджере

Обратите внимание, что у данного сервиса есть официальное подтверждение — синяя галочка

Шаг 1. Бот запрограммирован давать ответы, поэтому он никогда не начинает диалог. Чтобы получить информацию об установке вашего помощника, необходимо дать системному боту команду. Напишите в диалоговое окно /newbot. Далее бот будет задавать вопросы или давать инструкции.

Шаг 2. Необходимо придумать имя боту — оно будет отображаться в поисковой строке в списке контактов. Как правило, существующему названию компании или профиля в соцсети дописывают приставку bot. Если имя занято, то будут приходить системные сообщения — необходимо придумать другое. Для названия помощника можно использовать от 5 до 32 символов.

Шаг 3. После успешной регистрации бота появится следующее системное сообщение, в котором есть личный токен для последующих интеграций с различными сервисами.

Чат-бот готов. Для дальнейшей работы необходимо будет скопировать токен и вставлять на рабочие платформы для перехода в чат-бот. Также токен необходимо скопировать и вставить в диалоговое окно и после того придёт системное сообщение, что бот принят и готов к дальнейшей работе.

Настраиваем чат-бот

Для более полной информации необходимо настроить описание чат-бота — вставить аватар, написать информацию о компании.

Для этого нужно в диалоговом окне нажать команду /mybots. Появится меню настроек и редактирования.

И далее по очереди делаем описание каждого необходимого пункта. В любой момент можно редактировать описание и менять информацию.

Примеры чат-ботов в Telegram

Я собрала реальные примеры применения чат-ботов в Telegram разными видами бизнеса.

Чат-бот шоумена и ведущего мероприятий

Илья Сорокин, ведущий мероприятий, шоумен и конферансье, решил рассказать и показать свою работу через бот в Telegram. Здесь бот исполняет роль портфолио, дает возможность оставить заявку и собирает все каналы связи с Ильей воедино — потенциальный клиент выберет для себя подходящий.

Бот в Телеграме шоумена и ведущего мероприятий

Чат-бот психолога

Психолог, автор программ по подготовке к родам, Юлия Романенко, создала онлайн-помощника Джулию. С помощью нее можно узнать о распространенных страхах будущих мам, стоимость курсов, выбрать подходящий для себя и записаться на него.

Бот дает много полезной информации уже на старте общения, чем и располагает к себе.

Чат-бот Джулия — онлайн-помощник психолога

Рассылка обновлений от новостного портала

Новостной сайт «Коммерсантъ» использует бота в Телеграме, чтобы подписать читателей на рассылку новостей. При этом вы можете выбрать, как часто и в какое время получать обновления. Если нужно найти новости на сайте прямо сейчас, просто введите ключевое слово и бот предложит вам подборку новостей на эту тему.

Чат-бот издания «Коммерсантъ»

Чат-бот страховой компании

Украинское отделение страховой компании UNIQA тоже использует бота в Telegram. С помощью него вы можете узнать, какие документы нужны для оформления разных видов страховки: медицинская, на автомобиль и туристическая. Он также помогает оформить страховой случай и связаться с оператором по каждому из указанных разделов.

Чат-бот страховой компании

Откройте для себя чат-бота

Выстраивайте автоворонки продаж и отвечайте на вопросы пользователей с помощью чат-бота в Facebook, VK и Telegram.

Определение

Что же такое чат-бот? Чат-бот или просто бот – это компьютерный алгоритм, предназначенный для автоматического ведения переписки-диалога с реальным пользователем.

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

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

Чат-боты распространены на сайтах всех типов.

httpv://www.youtube.com/watch?v=embed/gLIXF0IuxQM

Боты могут иметь самое разное предназначение.

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

В зависимости от сложности тематики, ответы таких систем адекватны в большей или меньшей степени. Часто бывает целесообразнее, чтобы консультацию осуществлял реальный человек.

Кроме того, имеются боты развлекательного характера – способные общаться на отвлеченные или нейтральные темы. Также часто реализуются креативные системы – Арт-боты, упомянутые выше, Рифма-боты и т. п.

Создаем базу данных

Теперь нам нужно создать базу данных для наших таймеров. Что мы собираемся в ней хранить? Когда пользователь дает команду секундомеру начать отсчет, мы будем брать ID чата и сохранять строку с ID чата и текущим временем Unix. Следовательно мы сохраним строку с отметкой времени и ID чата.

Чтобы показывать текущее время секундомера, мы будем брать сохраненную метку времени и сравнивать ее с текущим временем. Разница и будет текущее время в секундах. Если пользователь останавливает секундомер, то мы просто удаляем строчку с данным ID чата.

Итак давайте создадим базу данных и таблицу для хранения информации для секундомера:

Создание класса Stopwatch

Наконец мы готовы начать писать код. Создадим класс для работы с базой данных в файле  и начнем с конструктора, который устанавливает два приватных свойства, где мы будем хранить ID чата и соединение с MySQL:

Когда пользователь запускает таймер, мы берем текущую временную метку Unix и сохраняем ее вместе с ID чата в методе :

Если таймер останавливается, то нам нужно удалить строку из базы данных:

И вот главная часть нашего класса. Когда пользователь запрашивает статус нашего таймера, нам нужно найти строку с секундомером из текущей беседы и подсчитать разницу в секундах между сохраненной временной меткой и текущим временем. К счастью временная метка Unix является целым числом, так что мы просто можем вычесть одно из другого. Чтобы отформатировать результирующее значение в виде времени, мы используем функцию .

Как видите, если в базе данных нет значения, то метод ничего не вернет, и мы обработаем значение null как остановленный таймер.

Выбор библиотеки PHP

Есть много PHP библиотек для работы с Telegram API, но на момент написания этой статьи лишь одна поддерживала одновременно Telegram Bot API и трекинг Botan. Она называется PHP Telegram Bot API.

Для установки библиотеки используем Composer:

Если вам не нужна аналитика, то попробуйте Bot API PHP SDK с интеграцией в Laravel или PHP Telegram Bot.

Запуск Webhook скрипта

И вот мы переходим к главной части — мы создаем скрипт для обработки обратных вызовов от Telegram Bot API. Создадим файл  и включим в него автозагрузчик Composer и новый класс Stopwatch. Откроем соединение MySQL, создадим нового клиента Telegram API и запустим его:

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

Теперь нужно настроить ответ бота на команду . Эта команда используется для старта всех ботов Telegram, и пользователям будет показано наше сообщение с приветствием.

Здесь в методе мы определим замыкание для получения команды. Замыкание получает ID текущего чата и отправляет сообщение с приветствием. Так же все зарегистрированные команды автоматически по имени команды.

Для запуска секундомера, мы определим команду /go:

Она создаст объект класса Stopwatch и запустит таймер, вызывав метод , который мы определили ранее.

Чтобы определить команду , делаем аналогично. Просто вызываем метод и возврашаем результат. Если метод вернул null, сообщаем пользователю, что таймер не был запущен.

А если пользователь останавливает таймер, то нам нужно сначала получить статус, показать результирующее время, а затем остановить таймер, используя метод .

И это все! Теперь вы можете загрузить все необходимые файлы в вашу директорию для webhook и протестировать своего бота.

Добавление клавиатуры

Чтобы предложить пользователю, какие команды он может выполнять, мы можем к сообщению добавить клавиатуру. Наш таймер может быть в двух состояниях: запущен или остановлен. Для того чтобы показать пользователю клавиатуру, нам нужно просто переопределить метод :

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

Puzzlebot

Это условно-бесплатный веб-сервис, позволяющий без знаний в области программирования написать бота. Регистрироваться на сайте необязательно, можно сразу приступить к созданию помощника. Сделать это можно следующим образом:

  1. Перейти на сайт конструктора и пройти авторизацию в личном кабинете через Телеграмм.
  2. В десктопной версии клиента откроется страница конструктора.
  3. Внизу щелкнуть по кнопке «Запустить».
  4. Появится сообщение о том, что аккаунт успешно создан и нужно перейти в личный кабинет, нажав на соответствующую кнопку.
  5. Останется ознакомиться с политикой использования сервиса, нажав на соответствующий чекбокс.
  6. Шаг с вводом электронной почты допускается пропустить, никаких ограничений на использование сервиса наложено не будет.
  7. Перейти в раздел «Конструктор».
  8. В правом окне кликнуть «Добавить блок» и выбрать нужную опцию, например, текст.
  9. В поле «Новая команда» указать «/start», чтобы запустить создание каркаса помощника.
  10. Ввести текст сообщения и добавить новую команду, нажав на соответствующую кнопку. Допускается подключить функциональный блок, например, «Фотография». Эти команды делают возможность открывать картинки на ответные действия пользователей.
  11. Щелкнуть по вкладке «Добавить бота» и ввести ключ API, чтобы начать управление чатом.

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

Создание и регистрация SSL Webhook

В Telegram есть два способа получения сообщений от пользователей: длинный опрос и webhooks.

Обычно с долгим опросом, вам необходимо запрашивать новые сообщения из API, а с webhooks вы устанавливаете свой обратный вызов, который будет вызван API Telegram, если появится новое сообщение от пользователя. Я предпочитаю использовать webhooks потому что это больше похоже на взаимодействие в реальном времени, так что в этой статье мы так же будем использовать этот способ. Теперь нам нужно выбрать URL для обратного вызова нашего webhook, который будет вызван по HTTPS протоколу, и нужно установить его достаточно безопасным, и расположить свой скрипт в безопасной директории как сказано в руководстве:

Если у вас подтвержденный SSL сертификат, то все что вам нужно, это открыть ваш URL в браузере:

Иначе необходимо сгенерировать самоподписанный сертификат. Вот пример команды в Linux для этого:

И не забудьте открыть SSL порт:

Чтобы подтвердить ваш сертификат и сделать ваш домен для webhook доверительным, необходимо загрузить свой публичный ключ:

В итоге вы получите следующий JSON ответ:

В нем сказано что webhook был установлен и мы готовы начать работу с ботом.

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

У Телеграмма есть встроенные сервисы, помогающие создать своего бота, активировать его. Сделать это можно быстро, а вот кропотливый процесс обучения трудоемкий и требует знаний, а также анализа.

  1. Установите его и авторизируйтесь.
  2. В поисковой строке вбейте «Manybot».
  3. Переходите в диалог и тапайте по клавише «Start».
  4. Кликните по меню «Добавить нового бота».
  5. Перед вами появится короткая инструкция, присланная сервисом Telegram. В точности следуйте ей.
  6. Направляйтесь к @BotFather, нажав на подсвеченную часть текста.
  7. Для начала переписки кликните на «Send Message».
  8. Напечатайте /start, и перед вами всплывет перечень команд, доступных для разработки.
  9. Вам нужно отослать /newbot.
  10. Вышлите имя, которое будет присвоено боту (отображается в поиске).
  11. Скиньте техническое название своего бота в Telegram, заканчивающееся на «bot». Все должно быть написано на английском языке.
  12. Вам пришел API-токен. Обязательно его где-то сохраните.
  13. Переходите назад к Manybot.
  14. Введите туда API, выданный ранее.
  15. Пропишите цели и принцип работы своей программы. Если не хотите это делать, введите /skip.

 

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

Как сделать кнопку «Поделиться» в Телеграм

Рассказываю о нескольких простых способах, позволяющих сделать кнопку «Поделиться» в Телеграм. Благодаря кнопке пользователи смогут лучше взаимодействовать с контентом вашего канала или чата и быстрее делиться им с другими людьми.

Введение

Кнопка «Поделиться» в Телеграм присутствует у постов в каналах по умолчанию. Это стрелочка в кружке, расположенная справа у постов.

Однако она не слишком сильно выделяется и привлекает к себе внимание. Поэтому иногда полезнее создать к посту отдельную кнопку, позволяющую расшарить (от англ

share — поделиться) пользователю контент. Ниже пример такой кнопки.

Теперь разберу 2 способа как сделать кнопку «Поделиться» в Телеграм.

Создаем кнопку «Поделиться» в Телеграм с помощью FleepBot

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

Для создания кнопки потребуется подключить @FleepBot к каналу. Как подключить сервис и работать с ним — пошагово разбирал в статье, поэтому на этом останавливаться не буду

Обращаю внимание, что сервис платный, но стоит недорого. Если канал имеет меньше 1000 подписчиков, то можно пользоваться им бесплатно

Как сделать кнопку «Поделиться» с помощью @FleepBot:

1. Подключаем бот к каналу.

2. Заходим в бот и нажимаем «Создать пост», выбираем нужный канал.

3. Отправляем боту контент. Я взял картинку с новым курсом. Кликаем по кнопке «Больше настроек».

4. Теперь нажимаем по кнопке «Поделиться». Статус поменяется на «вкл.» А бот пришлет сообщение об успешной активации.

Все, после публикации поста на канале у него появится кнопка «Поделиться».

Создаем кнопку «Поделиться» в Telegram с помощью ботов

Второй способ создания кнопки чуть сложнее, но более универсальный. Для начала нужно создать ссылку для кнопки «Поделиться» в Telegram.

Используем специального бота @tgshare_bot. Отправляем нужную ссылку и текст, бот в ответ генерирует ссылку для расшаривания. Внутри бота есть подробная инструкция по работе.

Затем с помощью любого бота для отложенных постов создаем кнопку к посту и на нее зашиваем полученную ссылку.

Предположим мне необходимо выпустить новый пост в канале Уголок админа с кнопкой «Поделиться» снизу. Чтобы пользователи лучше расшаривали контент. FleepBot я не использую, как быть:

1. Иду в канал и кликаю правой кнопкой мыши (пк версия Тг) на последний пост, затем выбираю «Копировать ссылку на сообщение».

2. Получаю ссылку на сообщение, вот она: https://t.me/tg_adminpro/210. На конце стоит цифра 210. Что это? Это номер поста в канале.

Все посты в Телеграм-каналах выходят по порядку. Раз мне нужно создать кнопку «Поделиться» для нового поста, которого еще нет в канале, я меняю цифру на 211. Раз последний пост в канале под номером 210, то следующий за ним будет 211. Итак, вот ссылка для будущего поста: https://t.me/tg_adminpro/211.

3. Запускаю @tgshare_bot и отправляю ему ссылку: https://t.me/tg_adminpro/211. Он генерирует готовую ссылку для расшаривания.

4. Все, ссылка есть. Теперь с помощью бота @telepostbot создам новый пост в канал.

5. Отправляю боту контент для нового поста и добавляю кнопку.

5. Даю название новой кнопке «Поделиться» и отправляю ссылку, ту что сгенерировал бот @tgshare_bot.

6. Все готово, ставлю пост в отложку. Когда он выйдет, у него будет рабочая кнопка «Поделиться».

Способ сложный лишь на первый взгляд, ничего трудно в создании кнопки «Поделиться» в Телеграм нет.

Заключение

Используя кнопки «Поделиться» к постам и контенту, вы повышаете шанс его расшаривания и увеличиваете возможное число просмотров. Плюс о канале узнает больше людей, часть из которых может на него подписаться. Не пренебрегайте этими кнопками.

Надеюсь, статья была для вас полезной. Всегда рад видеть ваши комментарии. Подписывайтесь на канал для админов в Телеграм и рассылку, делитесь статьей.

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

Телеграмм присылает полностью все сообщение. Ограничение на необходимость ставить перед командами слеш создано только для удобства пользователей. Это позволяет научить программу отвечать по-человечески. Для того чтобы дать ей возможность получать в группах все сообщения, нужно написать /setprivacy помощнику @BotFather, отключая, таким образом, приватность.

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

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

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

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Знай и умей
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: