Создание Telegram бота на PHP #1: основные понятия для работы с API
Всем привет, это первый урок из курса по разработке ботов для Telegram. В данном курсе, мы с вами разберём как создавать ботов для Telegram на PHP. Я расскажу вам как отправлять текстовые сообщения, как отправлять файлы, как получать и обрабатывать сообщения от пользователей и по итогу мы с вами напишем скрипт для быстрого создания бота для Telegram на PHP.
В первом уроке мы с вами рассмотрим основные понятия связанные с API. Я вам расскажу что такое API методы, хуки, покажу на примере Telegram построение URL для создания запросов и расскажу о том как создаются простые API запросы на PHP.
Полный список всех записей курса находится на сайте или в публикациях на Хабр.
Для отправки и получения запросов через API, вам лучше использовать виртуальный хостинг, так как локальный хостинг не сможет получать данные через хуки.
Основные понятия
Давайте рассмотрим основные понятия для работы с API.
API (Application Programming Interface) — это набор способов и правил, по которым различные программы общаются между собой и обмениваются данными.
Метод API — это определённое действие, которое должно выполнить приложение основываясь на полученных данных (отправить сообщение, вернуть список чатов, отправить картинку и т.д.)
Token (токен) — это уникальный ключ бота, необходимый для отправки запросов.
Как отправлять HTTP запросы на PHP
Для отправки HTTP запросов можно использовать функцию file_get_contents(), где в качестве первого главного параметра указывается ссылка. Данная функция отлично подходит для отправки GET запросов, но к сожалению с помощью функции file_get_contents() нельзя отправлять POST запросы и поэтому для отправки POST запросов мы будем использовать библиотеку Curl.
Curl — это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS.
Подробнее о Curl вы можете почитать на моём сайте.
Виды взаимодействия с приложением через API
Существует 2 вида взаимодействия с приложением через API. Первое это от клиента к серверу, а второе от сервера к клиенту. Клиентом в данном случае является ваше приложение (сайт), а в качестве сервера выступает сайт на который вы отправляете запросы (в нашем случае, это Telegram).
API запрос — это способ общения с программой, по средствам отправки данных от клиента — серверу.
Hooks (Хуки) — это способ общения с программой, по средствам отправки данных от сервера — клиенту. То есть при определённых изменениях в программе, сервер (приложение) будет отправлять данные на указанный скрипта клиента.
Документация для работы с API Telegram
Все методы и параметры для запросов вы можете найти в официальной документации Telegram.
К данному сайту мы будем ссылаться на протяжение всего курса.
Работа с документацией для Telegram
Документация для создания Telegram ботов разделена на несколько разделов.
В разделе Recent changes вы можете найти информацию об обновлениях Telegram. Здесь описаны версии и нововведения которые были внесены в функционал мессенджера.
Разделы Authorizing your bot и Making requests описывают способы авторизации ботов и способы создания запросов для работы с ботами.
Раздел Getting updates описывает способы получения обновлений взаимодействия с ботами. При взаимодействие пользователя с ботов, все его действия, по стандарту, записываются на сервера Telegram, и для того чтобы получить к ним доступ, необходимо отправить запрос getUpdates.
Отправив запрос getUpdates вы можете получить id последнего пользователя который написал боту, узнать его ник, текст сообщения и дату отправки. Если бот добавлен в сообщество, то вы можете получить id сообщества.
В разделе Getting updates так же описаны правила настройки хуков, что позволяет отправлять любые изменения на сервер разработчика. Но об этом мы поговорим позднее, сейчас давайте продолжим знакомство с документацией.
Следующий раздел, который нас интересует называется — Available types. Данный раздел описывает все типы данных которые возвращает нам Telegram. Когда ваш скрипт отправляет запрос, то обработав его, Telegram вернёт вам ответ в формате JSON строки, в котором описаны специальные параметры.
Например если вы отправляете сообщение, то Telegram вернёт вам массив в котором указаны id созданного сообщения, id пользователя, дата создания сообщения и много другое. Все эти данные вы можете разобрать и записать в базу данных.
Далее описан раздел, с которым нам придётся работать больше всего — это Available methods, методы для взаимодействия с ботом. Советую вам пройтись по всем методам и изучить все возможности работы с ботами.
Вкратце скажу что здесь описаны методы для отправки сообщений, файлов, изображений и многое другое. Все методы имеют понятные названия и описанные параметры, что позволяет легко читать документацию, даже без знания английского языка.
Ну и в конце у нас описаны методы для работы со стикерами, играми в Telegram, методы для работы с оплатой в Telegram.
Структура URL для отправки запросов в Telegram
API Telegram имеет простую и понятную структуру урлов для отправки запросов.
Вот пример URL для создания запросов к боту:
https://api.telegram.org/bot/
— это уникальный ключ, который выдаётся при создание бота;
— это метод запроса по которому мы будем получать или отправлять определённые данные. В зависимости от названия метода, мы будем выполнять разные действия.
Примеры URL для запросов
Данные примеры используются только для наглядности построения URL, токен указанный в URL не привязан ни к одному боту!
Вот так выглядит отправка сообщений методом GET. Первая часть URL содержит домен api.telegram.org, далее прописываем строку bot с токеном который нам даётся при создание бота, после чего указываем метод sendMessage и перечисляем GET параметры.
https://api.telegram.org/bot546445612928:AAHjk6643OYgWHim_TICgsaF9NDDVXYnKzA/sendMessage?chat_id=&text=
Отправка файлов в чат выглядит аналогично, только метод sendMessage заменяется на sendDocument. И здесь не перечисляются GET параметры, после указания метода, так как мы отправляем данные методом POST.
https://api.telegram.org/bot543264456928:AAHjk6643OYgWHim_TICgsaF9NDDVXYnKzA/sendDocument
Отправка изображений в чат:
https://api.telegram.org/bot546413456928:AAHjk6643OYgWHim_TICgsaF9NDDVXYnKzA/sendPhoto
На этом знакомство с документацией Telegram заканчивается. В следующем уроке, мы с вами создадим первого бота и попробуем отправить простые запросы.
- боты телеграм
- боты для мессенджеров
- боты для социальных сетей
- боты телеграмма
- php
- curl
Как получить токен телеграм и создать бота?

Токен — это ключ, состоящий из набора символов, и используется для связи webhook-у и сервера мессенджера telegram.
Для того чтобы получить токен и создать чат-бот, нужно в мессенджере телеграмм найти бота с названием BotFather. Это главный бот телеграмм, который позволяет управлять настройками созданных вами ботов, а также создавать новые.

. Важно. Максимальное количество токен, которые могут быть сделаны для одного аккаунта, телеграмму составляет 20.
В боте BotFather необходимо написать команду /newbot . После этого BotFather предложит Вам ввести:
- название Вашего бота, которое будут видеть пользователи;
- uri бота, то есть ссылка на бота, которая будет добавлена в ссылку https://t.me/.

После того, как данные введены и они прошли валидацию (верно введено uri бота), BotFather предоставит ответное сообщение, которое будет содержать API токен созданного бота.

В этот момент бот уже создан, и на него можно подписаться найдя его в поиске телеграмм, или перейдя по ссылке. Но, для того чтобы создать логику бота, то есть действия, которые будут происходить в боте при взаимодействии с пользователем, необходимо:
- установить webhook для чат-бота (web ссылка, через которую будет идти обмен сообщениями с телеграмм сервером);
- создать логику бота, то есть последовательность действий, которые будет выполнять чат-бота в ответ на действия пользователя.
Для этого, можно обратиться к разработчикам чат-ботов, или попытаться самостоятельно настроить бота подсоединив токен к любой -какого сервиса конструктора ботов, например Gerabot.
Еще нет собственного бота? Считаете, что создать чат-бота сложно?
Зарегистрируйтесь сейчас в конструкторы чат-ботов Gerabot и создайте собственного чат-бота за 15 минут!
Попробовать бесплатно
Также, Вы можете просмотреть видео инструкцию по созданию токена бота, а также настройке его логики в конструкторе Gerabot.

Также, в боте BotFather, Вы можете не только создавать ботов, но и управлять их основными настройками, например:
- изменять название бота;
- добавлять описание, которое будет отображаться до того, как пользователь подписался на бота;
- добавлять логотип бота;
- подключать платежные системы.
Для того, чтобы изменить данные бота, в BotFather необходимо написать /mybots< /strong> , после чего вы увидите список созданных в вашем аккаунте ботов. Нажав на любое из них, с помощью диалогового меню, вы можете переходить в соответствующие разделы настроек бота.
Смена токена Telegram бота
При подключении бота Telegram к платформам по созданию ботов, таким как BotHelp, используется уникальный ключ доступа к боту — токен. Если у кого-либо есть токен вашего бота, то он может беспрепятственно использовать его, например, для несанкционированных рассылок от имени вашего бота.
Чтобы обезопасить себя, рекомендуем обновлять токены ваших Telegram ботов в следующих случаях:
- смена сервиса для создания ботов,
- после работы сторонних специалистов в ваших аккаунтах,
- после создания нового кабинета на платформе с использованием тех же ботов.
Инструкция по обновлению токена Telegram бота
❗❗❗Важно! Чтобы в работе бота не возникло сбоев из-за обновления токена, сначала полностью изучите данную инструкцию. Обновление токена безопасно для цепочки, если сделать все действия достаточно быстро. Рекомендуем выбрать время, когда в ваших цепочках не планируется массовая отправка сообщений.
Откройте Telegram, проверьте что выбран аккаунт, который является владельцем бота. Найдите бота @BotFather.

Наберите команду /mybots, чтобы увидеть список ваших ботов, и выберете нужный. Нажмите на кнопку API Token, далее Revoke current token. Нажмите на новый токен, чтобы он скопировался.

Если вы пока не пользуетесь ботом и вам нужно только исключить возможность несанкционированного доступа, то этого достаточно.
Если вы продолжаете пользоваться ботом на платформе BotHelp, то бота нужно переподключить, для его корректной работы.
Переподключение Telegram бота в BotHelp
Зайдите в ваш кабинет BotHelp в раздел Настройки — Каналы.
Найдите нужного бота. Нажмите на кнопку ⁝ затем Отключить канал

Появится окно с предупреждением, подтвердите действие.

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

Чтобы проверить корректность подключения, напишите что-либо своему боту. Затем найдите себя в разделе Диалоги и отправьте сообщение себе от имени бота. Если сообщения пришли в обе стороны, то бот полностью исправен.
Если вы не нашли ответ на свой вопрос, задайте его нам в чате внутри кабинета либо напишите на hello@bothelp.io
Получите 14 дней полного функционала платформы для создания рассылок, автоворонок и чат-ботов BotHelp.
Как создать чат-бот в Telegram
Чат-бот — это автоматизированный многофункциональный помощник, который может показывать информацию подписчикам и собирать информацию по запросу согласно заранее подготовленным сценариям.
Следуйте пошаговой инструкции, чтобы создать своего первого чат-бота для Telegram мессенджера или подключить существующий к сервису SendPulse для дальнейшей настройки.
Содержание
Если у вас уже создан бот, переходите сразу к третьему пункту.
Зачем нужен чат-бот Telegram
Чаще всего чат-боты применяются для автоматизации обслуживания клиентов. Боты могут быстро и эффективно отвечать на вопросы и запросы клиентов 24/7, автоматически собирать обратную связь от клиентов после покупки или обслуживания. Для этого вам необходимо создать сценарий бота с необходимыми командами, которые будет выбирать подписчик для решения своих вопросов.
Боты могут отправлять мгновенные уведомления через рассылки о новых акциях, событиях или важных обновлениях бизнеса, что помогает удерживать клиентов в курсе и повышать узнаваемость бренда.
Как создать свой бот в Telegram
Откройте мессенджер Telegram, войдите в вашу учетную запись или создайте новую.
Введите в поле поиска @BotFather и выберите бот.
У официального бота Telegram будет стоять синий подтверждающий знак возле имени в виде галочки.

Нажмите «Запустить» для активации бота BotFather.
В ответ вы получите список команд по управлению ботом.

Выберите или напечатайте и отправьте команду /newbot .

Дайте имя боту — клиенты увидят это имя при общении с ботом. И никнейм бота — по нему можно будет найти бота в Telegram. Никнейм должен быть уникальным, не повторять существующие в базе и заканчиваться на слово «bot».

После того как вы выберите подходящее имя бот будет создан. Вы получите сообщение со ссылкой на бота t.me/ , рекомендации по настройке аватарки, описание бота и список команд для его настройки.
Для подключения бота в SendPulse вам понадобится токен. Скопируйте значение токена и перейдите к последнему пункту.

Где найти ключ для уже существующего бота
Перейдите к боту @BotFather и введите команду /token .
Вы увидите кнопки с созданными ботами.

Выберите бот, который нужно подключить.

Скопируйте значение токена.

Как подключить бот в Sendpulse
Перейдите в раздел «Чат-боты» в вашем аккаунте SendPulse. Если у вас нет подключенных каналов, нажмите на кнопку «Подключить каналы».
Если вы уже подключали ботов, перейдите в раздел «Управление ботами» и нажмите «Добавить бот». Также вы можете выбрать «Подключить» напротив нужного канала.

В секции «Telegram» введите ключ доступа — токен полученный в созданном боте. Нажмите «Подключить».

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

Вы будете перенаправлены в приложение Telegram, нажмите на кнопку «Запустить» и вы подпишетесь на свой бот.

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

Вы можете создавать сценарии самостоятельно, редактировать на основе готовых шаблонов под разные запросы в SendPulse или генерировать с помощью искусственного интеллекта от OpenAI.
Самостоятельно
Сначала определите, для чего вы создаете бот. Например, это может быть автоматизация клиентского обслуживания, сбор контактных данных, предоставление информации о продуктах или услугах и так далее.
Определите основные диалоги, которые ваш бот должен поддерживать. Напишите их на бумаге или создайте диаграммы, чтобы визуализировать последовательность.
Используйте разные блоки в одном сценарии: текст, картинки, фильтр, поле ввода, чтобы сделать сценарий полезным и динамичным для подписчика.

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

С помощью AI
Также вы можете задействовать искусственный интеллект для создания сценариев цепочек под ваши запросы. Это позволит существенно сократить время на генерацию творческих идей и продумывание логики.
Откройте конструктор и нажмите кнопку «Создать цепочку с помощью ИИ» (Create a flow with AI). Продумайте все детали, которые вы хотели бы включить в бот, и впишите требования в подсказку для генерации цепочки.

Искусственный интеллект можно подключить и для того, чтобы нейронная сеть генерировала ответы пользователям в режиме реального времени, не по сценариям. Подключите ChatGPT и предоставьте основные данные о вашей компании, на которые вы хотите, чтобы бот отвечал.
После того как вы создали бот в Telegram и настроили сценарии ответов, вы можете добавить ссылку на бот на ваш сайт или подключить его к умным попапам. Если у вас есть список ID подписчиков из 8-10 чисел, можете его импортировать.
Вы также можете отслеживать поведение бота в статистике и в чатах с подписчиками, чтобы анализировать путь пользователя и улучшать их опыт взаимодействия.