Примеры как зарегистрировать бота в Telegram, описание и взаимодействие с основными методами API. Документация на core.telegram.org и tlgrm.ru (неофициальный, на русском).
Все запросы к API должны осуществляться по HTTPS, подойдет бесплатный сертификат «Let’s Encrypt».
Регистрация бота
Следующим сообщением отправляем название для бота, обязательно на конце имени должно быть слово «bot» или «_bot». Ответным сообщением получим токен:
Как получить токен бота Telegram API и подключить бота к платформе
Тут же можно настроить описание и аватарку:
/setname | Имя |
/setdescription | Краткое описание |
/setabouttext | Описание бота |
/setuserpic | Юзерпик |
Далее нужно поставить «Webhook» чтобы все сообщения из Telegram приходили на PHP скрипт ( https://example.com/bot.php ). Для этого нужно пройти по ссылке в которой подставлены полученный токен и адрес скрипта.
В ответе будет
При смене токена, установку вебхука нужно повторить.
Входящие сообщения
Сообщения приходят POST-запросом, с типом application/json . Получить его в PHP можно следующим образом:
$data = file_get_contents(‘php://input’); $data = json_decode($data, true);
Чтобы посмотреть входящие данные, их придется дампить в файл:
file_put_contents(__DIR__ . ‘/message.txt’, print_r($data, true));
Текстовое сообщение
Запрос от Телеграм:
Array ( [update_id] => 17584194 [message] => Array ( [message_id] => 26 [from] => Array ( [id] => 123456789 [is_bot] => [first_name] => UserName [language_code] => ru-US ) [chat] => Array ( [id] => 123456789 [first_name] => UserName [type] => private ) [date] => 1541888068 [text] => Привет бот! ) )
Получим текст сообщения:
if(!empty($data[‘message’][‘text’]))
Фотографии
При отправки фото боту, на скрипт приходит массив превьюшек, последним элементом будет оригинальное фото. Максимальный размер файла 20МБ.
Запрос от Телеграм:
Array ( [update_id] => 17584194 [message] => Array ( [message_id] => 38 [from] => Array ( [id] => 123456789 [is_bot] => [first_name] => UserName [language_code] => ru-US ) [chat] => Array ( [id] => 123456789 [first_name] => UserName [type] => private ) [date] => 1541924962 [photo] => Array ( [0] => Array ( [file_id] => AgADAgADUqexG7u8OEudBvlhgMzKC1agOQ8ABC6Bx26USA7Mw3gAAgI [file_size] => 1196 [width] => 51 [height] => 90 ) [1] => Array ( [file_id] => AgttAgADUqoxG7u8OEudBvlhgMzKC1agOQ8ABKwp_3jDPrIlxHgAAgI [file_size] => 21146 [width] => 180 [height] => 320 ) [2] => Array ( [file_id] => AgADAgADUqyxG7u8OEudBvlhgMzKC1agOQ8ABAN8gJWpUT1MxXgAAgI [file_size] => 90940 [width] => 449 [height] => 800 ) [3] => Array ( [file_id] => AgADAgADUqouu7u8OEudBvlhgMzKC1agOQ8ABIqVC1nEpbLDwngAAgI [file_size] => 114363 [width] => 719 [height] => 1280 ) ) ) )
Чтобы скачать файл нужно отправить POST или GET запрос на получение c параметром file_id изображения по URL:
Telegram Bot Token/ Как получить токен бота Telegram API/ КАК и ДЛЯ ЧЕГО.
https://api.telegram.org/bot/getFile
В ответ придет информация о файле:
Array ( [ok] => 1 [result] => Array ( [file_id] => AgADAgADUqoxG5u88E0dBvlhgMzKC1agOQ8ABIqVC1nEpbLDwngAAgI [file_size] => 114363 [file_path] => photos/file_1.jpg ) )
Далее его можно скачать по ссылке:
В PHP сохранение файла на сервер можно реализовать следующим образом:
$token = ‘123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11’; if (!empty($data[‘message’][‘photo’])) < $photo = array_pop($data[‘message’][‘photo’]); $ch = curl_init(‘https://api.telegram.org/bot’ . $token . ‘/getFile’); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, array(‘file_id’ =>$photo[‘file_id’])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res, true); if ($res[‘ok’]) < $src = ‘https://api.telegram.org/file/bot’ . $token . ‘/’ . $res[‘result’][‘file_path’]; $dest = __DIR__ . ‘/’ . time() . ‘-‘ . basename($src); copy($src, $dest); >>
Документ
Запрос от Телеграм:
Array ( [update_id] => 17474201 [message] => Array ( [message_id] => 44 [from] => Array ( [id] => 123456789 [is_bot] => [first_name] => UserName [language_code] => ru-US ) [chat] => Array ( [id] => 123456789 [first_name] => UserName [type] => private ) [date] => 1541925844 [document] => Array ( [file_name] => IMG_7947.JPG [mime_type] => image/jpeg [thumb] => Array ( [file_id] => AAQCABMNv_QOAATwQugveIZBldZ3AAIC [file_size] => 2644 [width] => 67 [height] => 90 ) [file_id] => BQADAgADtQEAAqu9OEhzn2cEz8LpkgI [file_size] => 1976218 ) ) )
Скачивание файлов происходит по такой же схеме как у фотографий.
if (!empty($data[‘message’][‘document’])) < $file_id = $data[‘message’][‘document’][‘file_id’]; $ch = curl_init(‘https://api.telegram.org/bot’ . $token . ‘/getFile’); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, array(‘file_id’ =>$file_id)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res, true); if ($res[‘ok’]) < $src = ‘https://api.telegram.org/file/bot’ . $token . ‘/’ . $res[‘result’][‘file_path’]; $dest = __DIR__ . ‘/’ . time() . ‘-‘ . basename($src); copy($src, $dest); >>
Ответы бота
Отправка текста
$response = array( ‘chat_id’ => $data[‘message’][‘chat’][‘id’], ‘text’ => ‘Хай!’ ); $ch = curl_init(‘https://api.telegram.org/bot’ . $token . ‘/sendMessage’); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_exec($ch); curl_close($ch);
Отправка картинки
$response = array( ‘chat_id’ => $data[‘message’][‘chat’][‘id’], ‘photo’ => curl_file_create(__DIR__ . ‘/image.png’) ); $ch = curl_init(‘https://api.telegram.org/bot’ . $token . ‘/sendPhoto’); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_exec($ch); curl_close($ch);
Отправка файла
Пример скрипта
Скрипт простейшего бота. Он отвечает на вопросы и сохраняет файлы и изображение на сервере.
define(‘TOKEN’, ‘123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11’); // Функция вызова методов API. function sendTelegram($method, $response) < $ch = curl_init(‘https://api.telegram.org/bot’ . TOKEN . ‘/’ . $method); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); return $res; >// Прислали фото. if (!empty($data[‘message’][‘photo’])) < $photo = array_pop($data[‘message’][‘photo’]); $res = sendTelegram( ‘getFile’, array( ‘file_id’ =>$photo[‘file_id’] ) ); $res = json_decode($res, true); if ($res[‘ok’]) < $src = ‘https://api.telegram.org/file/bot’ . TOKEN . ‘/’ . $res[‘result’][‘file_path’]; $dest = __DIR__ . ‘/’ . time() . ‘-‘ . basename($src); if (copy($src, $dest)) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Фото сохранено’ ) ); > > exit(); > // Прислали файл. if (!empty($data[‘message’][‘document’])) < $res = sendTelegram( ‘getFile’, array( ‘file_id’ =>$data[‘message’][‘document’][‘file_id’] ) ); $res = json_decode($res, true); if ($res[‘ok’]) < $src = ‘https://api.telegram.org/file/bot’ . TOKEN . ‘/’ . $res[‘result’][‘file_path’]; $dest = __DIR__ . ‘/’ . time() . ‘-‘ . $data[‘message’][‘document’][‘file_name’]; if (copy($src, $dest)) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Файл сохранён’ ) ); > > exit(); > // Ответ на текстовые сообщения. if (!empty($data[‘message’][‘text’])) < $text = $data[‘message’][‘text’]; if (mb_stripos($text, ‘привет’) !== false) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Хай!’ ) ); exit(); > // Отправка фото. if (mb_stripos($text, ‘фото’) !== false) < sendTelegram( ‘sendPhoto’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘photo’ => curl_file_create(__DIR__ . ‘/image.jpg’) ) ); exit(); > // Отправка файла. if (mb_stripos($text, ‘файл’) !== false) < sendTelegram( ‘sendDocument’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘document’ => curl_file_create(__DIR__ . ‘/test.txt’) ) ); exit(); > >
- ← Как сбросить root-пароль Linux-сервера
- Авторизация на сайте через Google →
Источник: it-stories.ru
Как создать Telegram-бот для интернет-магазина
Telegram-боты часто ассоциируются с полезными мини-программами по подбору контента, ведению аккаунта или генераторами шуток. Но при помощи инструментов и механик, которые помогут вам без навыков программирования создать бота, вы сможете охватить ранее недоступную аудиторию и увеличить прибыль.
В этой статье мы пошагово разберем процесс разработки и внедрения такого бота.
Подготовка к работе. Что понадобится для создания бота в Telegram
Есть несколько вариантов, создания в Telegram чат-бота. Мы разберем тот, которым чаще всего пользуемся сами, потому что он быстрый, удобный, не требует навыков программирования.
Минус у этого подхода тоже есть: использование дополнительного софта. Но результаты стоят свеч!
Что понадобится перед началом сборки бота или автоворонки в Telegram:
- Понимание структуры своего бизнеса, воронки продаж и продуманная продуктовая матрица.
Об основах и проработке структуры бота и автоворонки вы можете прочитать в статье «6 этапов создания прибыльной автоворонки в соцсетях и мессенджерах». - Telegram-аккаунт. Бот в Telegram изначально создается прямо в мессенджере.
- Приложение для создания ботов без программирования. Для Telegram мы чаще пользуемся системой BotHelp. Приложение понадобится, чтобы созданный бот научился следовать простым скриптам, отвечать на команды и кнопки.
- Дополнительные материалы. Заранее подготовьте все наполнение будущего бота: изображения, ссылки с utm-метками, тексты и так далее.
В качестве примера возьмем небольшой интернет-магазин, в котором продается несколько наименований одежды для молодежи.
Предположим, что на первом этапе мы решили разработать простого Telegram-бота, который сможет:
а) Подписать посетителя на новости (акции, скидки, новые поступления).
б) Продемонстрировать ассортимент (с помощью меню внутри бота).
в) Перевести на сайт, на котором клиент может заказать понравившуюся вещь.
Важно: будьте внимательны и не наткнитесь на клон, их развелось множество. Нам нужен именно такой бот:
Настоящий BotFather выглядит так
3. Нажимаем /start.
BotFather легко освоить
В меню выбираем или вводим в поле ввода команду /newbot.
4. Придумываем и вводим имя бота.
Важно: имя будет отображаться в диалогах.
Имя бота нужно ввести в ответ на это сообщение
5. Введите ник вашего бота.
Ник может состоять из латинских букв, цифр, допускается нижнее подчеркивание. Любой ник должен заканчиваться на “bot”.
Возможно, что ник, который вы ввели, будет уже занят. В этом случае нужно придумать другой. И так до тех пор, пока не найдете свободный.
6. Завершаем создание бота, сохраняем секретный код.
После того, как регистрация бота пройдет успешно, вы увидите следующее сообщение:
Скопируйте и сохраните токен.
Токен – это секретный код, который позволяет связать сервисы автоворонок и ботов с вашим ботом в Telegram. Никому не сообщайте его. Важно! Ваш код будет отличаться от того, что в примере.
На этом основная настройка бота закончена. Ее достаточно, чтобы бот работал. Позже вы можете добавить к нему логотип, описание и остальные улучшения. Чтобы получить доступ к таким командам, просто перейдите к диалогу с BotFather и наберите /help. Так вы снова попадете в меню.
После этого можно переходить к настройке бота, чтобы он мог действовать по программе.
Обучаем бота. Работа с сервисами автоворонок и ботов
Как говорилось выше, бот можно настроить с помощью программирования или прямо в Telegram, но наиболее удобным мы считаем третий способ: через специализированный сервис.
Плюсы такого подхода:
- скорость настройки;
- удобство работы;
- не нужны навыки программирования.
На этапе подготовки мы выбрали для обучения бота систему BotHelp. Дальнейшие настройки будем показывать на ее примере. Вы можете использовать другую систему. Главное, чтобы она поддерживала работу с Telegram.
1. Настраиваем канал (связываем BotHelp и Telegram).
Перейдите к настройкам. Выберите «Добавление канала», затем Telegram. В поле Token введите тот самый секретный код, который вы сохранили на предыдущем этапе.
Поле ввода для сохраненного токена
После этого бот появится в доступных каналах. Поздравляем, вы создали свой первый Telegram-бот!
На следующем этапе нужно перенести карту вашего бота в систему для создания автоворонок. Иными словами, так вы запрограммируете бот на нужные действия.
Наиболее подробно этот шаг описан в мануале сервиса.
Теперь у вас есть бот в Telegram. Есть сценарий бота, который вы настроили в BotHelp или другой системе.
Далее необходимо протестировать бот.
- Убедитесь, что сценарий бота активен.
Не забудьте активировать сценарий бота - Перейдите в Telegram, найдите диалог с вашим ботом.
- Активируйте бот и начните диалог.
- Проверьте все команды, кнопки и ссылки, правильность построения сообщений.
- Если все успешно, можно открывать бот для широкой аудитории.
- Для этого вы можете поделиться ссылкой на него в своем канале, социальных сетях.
- Можно встроить бот в канал Telegram. Или создать полноценный лендинг и добавить туда ссылку на бот.
Поздравляем, создание и запуск Telegram-бота прошли успешно!
Нужно подробнее рассказать про то, как встраивать бота в канал Telegram? Или у вас есть другие вопросы по ботам и автоворонкам? Приглашаем вас в нашу группу для всех, кто увлекается автоворонками!
Источник: teslatarget.ru