Получить токен бота Telegram

Telegram бот на PHP

Заметки айтишника

Примеры как зарегистрировать бота в 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

В ответ придет информация о файле:

Еще по теме:  Rfr gj шв в Телеграм искать

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(); > >

Еще по теме:  Как на часах x8 pro привязать Телеграмм

  • ← Как сбросить root-пароль Linux-сервера
  • Авторизация на сайте через Google →

Источник: it-stories.ru

Как создать Telegram-бот для интернет-магазина

telegram bot_0

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

В этой статье мы пошагово разберем процесс разработки и внедрения такого бота.

Подготовка к работе. Что понадобится для создания бота в Telegram

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

Минус у этого подхода тоже есть: использование дополнительного софта. Но результаты стоят свеч!

Что понадобится перед началом сборки бота или автоворонки в Telegram:

  1. Понимание структуры своего бизнеса, воронки продаж и продуманная продуктовая матрица.
    Об основах и проработке структуры бота и автоворонки вы можете прочитать в статье «6 этапов создания прибыльной автоворонки в соцсетях и мессенджерах».
  2. Telegram-аккаунт. Бот в Telegram изначально создается прямо в мессенджере.
  3. Приложение для создания ботов без программирования. Для Telegram мы чаще пользуемся системой BotHelp. Приложение понадобится, чтобы созданный бот научился следовать простым скриптам, отвечать на команды и кнопки.
  4. Дополнительные материалы. Заранее подготовьте все наполнение будущего бота: изображения, ссылки с utm-метками, тексты и так далее.

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

Предположим, что на первом этапе мы решили разработать простого Telegram-бота, который сможет:

а) Подписать посетителя на новости (акции, скидки, новые поступления).

б) Продемонстрировать ассортимент (с помощью меню внутри бота).

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

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

telegram bot_2

Настоящий BotFather выглядит так

3. Нажимаем /start.

telegram bot_4

BotFather легко освоить

В меню выбираем или вводим в поле ввода команду /newbot.

4. Придумываем и вводим имя бота.

Важно: имя будет отображаться в диалогах.

telegram bot_3

Имя бота нужно ввести в ответ на это сообщение

5. Введите ник вашего бота.

Ник может состоять из латинских букв, цифр, допускается нижнее подчеркивание. Любой ник должен заканчиваться на “bot”.

Еще по теме:  Вз это в Телеграмме

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

6. Завершаем создание бота, сохраняем секретный код.

После того, как регистрация бота пройдет успешно, вы увидите следующее сообщение:

telegram bot_6

Скопируйте и сохраните токен.

Токен – это секретный код, который позволяет связать сервисы автоворонок и ботов с вашим ботом в Telegram. Никому не сообщайте его. Важно! Ваш код будет отличаться от того, что в примере.

На этом основная настройка бота закончена. Ее достаточно, чтобы бот работал. Позже вы можете добавить к нему логотип, описание и остальные улучшения. Чтобы получить доступ к таким командам, просто перейдите к диалогу с BotFather и наберите /help. Так вы снова попадете в меню.

После этого можно переходить к настройке бота, чтобы он мог действовать по программе.

Обучаем бота. Работа с сервисами автоворонок и ботов

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

Плюсы такого подхода:

  • скорость настройки;
  • удобство работы;
  • не нужны навыки программирования.

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

1. Настраиваем канал (связываем BotHelp и Telegram).

Перейдите к настройкам. Выберите «Добавление канала», затем Telegram. В поле Token введите тот самый секретный код, который вы сохранили на предыдущем этапе.

telegram bot_5

Поле ввода для сохраненного токена

После этого бот появится в доступных каналах. Поздравляем, вы создали свой первый Telegram-бот!

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

Наиболее подробно этот шаг описан в мануале сервиса.

Теперь у вас есть бот в Telegram. Есть сценарий бота, который вы настроили в BotHelp или другой системе.

Далее необходимо протестировать бот.

telegram bot_1

  • Убедитесь, что сценарий бота активен.
    Не забудьте активировать сценарий бота
  • Перейдите в Telegram, найдите диалог с вашим ботом.
  • Активируйте бот и начните диалог.
  • Проверьте все команды, кнопки и ссылки, правильность построения сообщений.
  • Если все успешно, можно открывать бот для широкой аудитории.
  • Для этого вы можете поделиться ссылкой на него в своем канале, социальных сетях.
  • Можно встроить бот в канал Telegram. Или создать полноценный лендинг и добавить туда ссылку на бот.

Поздравляем, создание и запуск Telegram-бота прошли успешно!

Нужно подробнее рассказать про то, как встраивать бота в канал Telegram? Или у вас есть другие вопросы по ботам и автоворонкам? Приглашаем вас в нашу группу для всех, кто увлекается автоворонками!

Источник: teslatarget.ru

Рейтинг
( Пока оценок нет )
Загрузка ...