DirectoryWeb
    • Каталог
      • Скрипты
      • Боты
      • Программы
      • Android, iOS приложения
    • Арбитраж трафика
      • Тизерные сети
      • SMS рассылки
      • Telegram Ads
      • Анализ трафика
      • Видео трафик
      • Автоматизация
      • CPA-сети
      • Push-реклама
      • Popunder реклама
      • Нативная реклама
      • Ретаргетинг
      • Кейсы
      • Трекеры
      • Партнёрские программы
        • Товарные партнерки
        • Финансовые партнерки
        • Партнерки интернет-магазинов
        • Зарубежные партнерки
      • Реклама в Telegram
      • Сервисы
        • Прокси
        • Виртуальные карты
      • Инструменты
        • Мультиаккаунтинг
      • Обзоры
      • Мануалы
      • Антидетект-браузеры
    • Статьи
      • Маркетплейсы
      • Безопасность в сети
      • Заработок в интернете
      • Сайтостроение
      • Оптимизация сайтов
      • Обучение
      • Криптовалюты
      • Новости
      • Разное
      • Новости сайта
  • Контакты
  • Telegram
  • Вход / Регистрация

купить скрипт казино

Psb.Hosing - Хостинговое решение для быстрой и стабильной работы ваших проектов.
Купить резедентные прокси
Vibix - надеждый видео-балансир
    Заработок в интернете без вложений » Статьи » Разное » Как создать чат-бота для Telegram на PHP

Отзывы

Как создать чат-бота для Telegram на PHP

Статьи / Разное



Как создать чат-бота для Telegram на PHP? На данный момент это очень актуальный вопрос. 24 июня 2015 года разработчики Telegram открыли платформу для создания ботов (программ, которые выполняют определенные действия по заданному алгоритму).

Прежде чем начать писать код, нового бота нужно зарегистрировать у «папы всех ботов» — @BotFather, чтобы получить токен (ключ) для работы с Telegram API.

Регистрация проходит в 5 простых этапов:

1) Открываете чат с @BotFather;

2) Вводите или выбираете из списка команду /newbot;

3) Отправляете желаемое название для бота;

4) Пишете юзернейм бота, по которому его будут находить через поиск. Обязательно на конце вашего юзернейма должно быть слово «bot» или «_bot». Например, NetologyRSSbot;

5) По желанию можно сразу настроить полное или краткое описание, список команд и аватарку.

По итогу регистрации получаем наш токен — 375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s.

Будьте осторожны: никогда и никому не показывайте токен, иначе ваш бот может быть скомпрометирован. Если по несчастливой случайности кто-то нехороший все-таки узнал ваш токен, то заменить его можно всё в том же @BotFather, нажав на кнопку «Revoke current token» в разделе «API Token».

Шаг 2: выбираем способ обработки запросов
Исходя из официальной документации, Telegram API основан на простых HTTP-запросах. Существует всего два различных способа обрабатывать запросы, которые пользователи будут посылать боту:

1) проверять «вручную», используя «Long Polling»;

2) доверить всё Telegram, поставив «Webhook». В этом случае любой запрос от пользователя Telegram сам будет посылать нам на сервер.

Мы остановимся на втором варианте, но у него есть ограничение: у вас на сайте обязательно должен быть установлен SSL-сертификат, чтобы все запросы проходили через безопасный протокол HTTPS. Самоподписанные и бесплатные сертификаты «Let’s Encrypt», которые поддерживает большинство хостингов, также подходят.

Пример настройки самоподписанного сертификата из официальной документации Telegram.

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

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

https:// api. telegram. org/bot375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s/setWebhook?url=https:// yoursitehere .ru/directory/bot.php,

где

375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s — это наш токен,

https:// yousitehere. ru/directory/bot.php — ссылка на файл-обработчик на нашем сайте.

Открыв в браузере эту ссылку, должен прийти JSON-ответ со значением «Webhook was set», что будет означать, что вебхук установлен, и теперь все запросы от пользователей будут присылаться по адресу файла-обработчика.

Переходим к самому главному — обработке этих самых запросов и написанию функционала бота.

Ниже представлен полный листинг файла-обработчика:

<?php
    include('vendor/autoload.php'); //Подключаем библиотеку
    use Telegram\Bot\Api; 

    $telegram = new Api('375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s'); //Устанавливаем токен, полученный у BotFather
    $result = $telegram -> getWebhookUpdates(); //Передаем в переменную $result полную информацию о сообщении пользователя
    
    $text = $result["message"]["text"]; //Текст сообщения
    $chat_id = $result["message"]["chat"]["id"]; //Уникальный идентификатор пользователя
    $name = $result["message"]["from"]["username"]; //Юзернейм пользователя
    $keyboard = [["Последние статьи"],["Картинка"],["Гифка"]]; //Клавиатура

    if($text){
         if ($text == "/start") {
            $reply = "Добро пожаловать в бота!";
            $reply_markup = $telegram->replyKeyboardMarkup([ 'keyboard' => $keyboard, 'resize_keyboard' => true, 'one_time_keyboard' => false ]);
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => $reply, 'reply_markup' => $reply_markup ]);
        }elseif ($text == "/help") {
            $reply = "Информация с помощью.";
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => $reply ]);
        }elseif ($text == "Картинка") {
            $url = "https://68.media.tumblr.com/6d830b4f2c455f9cb6cd4ebe5011d2b8/tumblr_oj49kevkUz1v4bb1no1_500.jpg";
            $telegram->sendPhoto([ 'chat_id' => $chat_id, 'photo' => $url, 'caption' => "Описание." ]);
        }elseif ($text == "Гифка") {
            $url = "https://68.media.tumblr.com/bd08f2aa85a6eb8b7a9f4b07c0807d71/tumblr_ofrc94sG1e1sjmm5ao1_400.gif";
            $telegram->sendDocument([ 'chat_id' => $chat_id, 'document' => $url, 'caption' => "Описание." ]);
        }elseif ($text == "Последние статьи") {
            $html=simplexml_load_file('http://netology.ru/blog/rss.xml');
            foreach ($html->channel->item as $item) {
         $reply .= "\xE2\x9E\xA1 ".$item->title." (<a href='".$item->link."'>читать</a>)\n";
            }
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'disable_web_page_preview' => true, 'text' => $reply ]);
        }else{
            $reply = "По запросу \"<b>".$text."</b>\" ничего не найдено.";
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode'=> 'HTML', 'text' => $reply ]);
        }
    }else{
        $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => "Отправьте текстовое сообщение." ]);
    }
?>


Разберем всё по порядку.

1. Сначала мы подключаем скачанную библиотеку, указав путь (лучше полный) до файла автозагрузчика.

include('vendor/autoload.php'); //Подключаем библиотеку
use Telegram\Bot\Api;


2. Создаем экземпляр класса в переменной $telegram и передаем в него наш токен.

В переменной $result получаем информацию о сообщении, которое пришлет нам Telegram.

$telegram = new Api('375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s'); //Устанавливаем токен, полученный у BotFather
$result = $telegram -> getWebhookUpdates(); //Передаем в переменную $result полную информацию о сообщении пользователя


3. Затем определяем главные переменные: текстовое сообщение, уникальный идентификатор пользователя и его юзернейм. Если предстоит работа с БД, то не забывайте про фильтрацию (или лучше используйте PDO).

$text = $result["message"]["text"]; //Текст сообщения
$chat_id = $result["message"]["chat"]["id"]; //Уникальный идентификатор пользователя
$name = $result["message"]["from"]["username"]; //Юзернейм пользователя


4. Создаем нашу клавиатуру, состоящую из трех кнопок.

$keyboard = [["Последние статьи"],["Картинка"],["Гифка"]]; //Клавиатура


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

В самом начале проверяем, заполнена ли переменная $text и является ли сообщение пользователя текстовым.

if($text){
         …
         //код
         ...
}else{
         $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => "Отправьте текстовое сообщение." ]);
}


Если нет, то отправляем пользователю с помощью метода sendMessage сообщение с просьбой ввести текстовое сообщение.

6. Рассмотрим вариант, когда пользователь прислал сообщение с командами /start или /help

if ($text == "/start") {
            $reply = "Добро пожаловать в бота!";
            $reply_markup = $telegram->replyKeyboardMarkup([ 'keyboard' => $keyboard, 'resize_keyboard' => true, 'one_time_keyboard' => false ]);
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => $reply, 'reply_markup' => $reply_markup ]);
 }elseif ($text == "/help") {
            $reply = "Информация с помощью.";
            $reply_markup = $telegram->replyKeyboardMarkup([ 'keyboard' => $keyboard, 'resize_keyboard' => true, 'one_time_keyboard' => false ]);
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => $reply, 'reply_markup' => $reply_markup ]);
  }


В этом случае помимо текста из переменной $reply будет подгружаться клавиатура, состоящая из трёх кнопок: «Последние статьи», «Картинка» и «Гифка».

Реализуется это с помощью метода replyKeyboardMarkup, параметрами которого являются:

'keyboard' => $keyboard, передаем нашу клавиатуру
'resize_keyboard' => true, клавиатура будет сжата в размерах.
'one_time_keyboard' => false, клавиатура не исчезнет после нажатия на какую-то кнопку.
7. После появления клавиатуры пользователь явно захочет попробовать потыкать на расположенные на ней кнопки, и вот что у нас «под капотом» в этом случае:

}elseif ($text == "Картинка") {
            $url = "https://68.media.tumblr.com/6d830b4f2c455f9cb6cd4ebe5011d2b8/tumblr_oj49kevkUz1v4bb1no1_500.jpg";
            $telegram->sendPhoto([ 'chat_id' => $chat_id, 'photo' => $url, 'caption' => "Описание." ]);
        }elseif ($text == "Гифка") {
            $url = "https://68.media.tumblr.com/bd08f2aa85a6eb8b7a9f4b07c0807d71/tumblr_ofrc94sG1e1sjmm5ao1_400.gif";
            $telegram->sendDocument([ 'chat_id' => $chat_id, 'document' => $url, 'caption' => "Описание." ]);
        }elseif ($text == "Последние статьи") {
            $html=simplexml_load_file('http://netology.ru/blog/rss.xml');
            foreach ($html->channel->item as $item) {
         $reply .= "\xE2\x9E\xA1 ".$item->title." (<a href='".$item->link."'>читать</a>)\n";
            }
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'disable_web_page_preview' => true, 'text' => $reply ]);
        }


8. Для отправки картинки используется метод sendPhoto, для отправки гифки – sendDocument. В обоих случаях Telegram позволяет передавать прямую ссылку на файл, что безусловно очень удобно, но не так быстро, как если бы мы передавали file_id уже отправленной на сервера Telegram картинки или гифки.

9. Для получения последних статей используется простой парсинг RSS ленты Нетологии при помощи встроенной в PHP функции simplexml_load_file.

В параметрах метода sendMessage можно заметить два новых значения:

1) 'parse_mode' => 'HTML', чтобы в сообщение можно было вставить HTML-теги

<b>, <a>, <i>, <code>


или

<pre>


2)

'disable_web_page_preview' => true


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

10. В качестве смайла (стрелка вправо) используются символы \xE2\x9E\xA1. Список всех смайлов в таком виде можно найти на специальном сайте.

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

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

Бесплатными площадками для продвижения могут послужить каталоги ботов Telegram Bot Store, TeleChappy или 50bots. А анализировать активность пользователей можно с помощью го инструмента для аналитики ботов от Яндекса — Botan.

Telegram

МАРКЕТПЛЕЙС ЦИФРОВЫХ ТОВАРОВ

Перейти в чат вебмастеров
  • DirectoryWeb
  • 03.09.2022
  • 1 1 210
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
Скрипт поиска музыки в социальной сети VKontakte
Скрипт поиска музыки в социальной сети VKontakte
23-10-2013, 12:18, ---
Скрипт экономической игры «Asphalt 8 AIRBORNE»
Скрипт экономической игры «Asphalt 8 AIRBORNE»
15-08-2016, 00:42, Экономические игры
Cкрипт социальной сети Socialmat 1.6.2
Cкрипт социальной сети Socialmat 1.6.2
14-08-2016, 18:02, Социальные сети
Оператор ветвления условная инструкция, условный оператор
Оператор ветвления условная инструкция, условный оператор
5-10-2016, 17:50, Сайтостроение
8 виртуальных карт для оплаты зарубежных сервисов, подписок и покупок
8 виртуальных карт для оплаты зарубежных сервисов, подписок и покупок
9-11-2024, 15:00, Финансы / Виртуальные карты
Качественный скрипт инвестиционного проекта «Profit-Express»
Качественный скрипт инвестиционного проекта «Profit-Express»
24-09-2016, 20:01, HYIP, MLM, МММ

Твой комментарий..

  • Скрипты
    • Telegram
    • Финансы
    • CS:GO
    • Бонусники
    • Браузерные игры
    • Интернет магазины
    • Автопостинг
    • Доски объявлений
    • Обменники
    • Казино
    • Каталоги
    • Конструкторы сайтов
    • Облачные майнинги
    • Платёжные системы
    • Рекламные сервисы
    • Социальные сети
      • TikTok Ads
    • Экономические игры
    • Чаты
    • Хостинги
    • HYIP, MLM, МММ
    • Фриланс биржи
    • E-mail рассылки
    • Разное
  • Арбитраж трафика
    • Тизерные сети
    • SMS рассылки
    • Telegram Ads
    • Анализ трафика
    • Видео трафик
    • Автоматизация
    • CPA-сети
    • Push-реклама
    • Popunder реклама
    • Нативная реклама
    • Ретаргетинг
    • Кейсы
    • Трекеры
    • Партнёрские программы
      • Товарные партнерки
      • Финансовые партнерки
      • Партнерки интернет-магазинов
      • Зарубежные партнерки
    • Реклама в Telegram
    • Сервисы
      • Прокси
      • Виртуальные карты
    • Инструменты
      • Мультиаккаунтинг
    • Обзоры
    • Мануалы
    • Антидетект-браузеры
  • HTML шаблоны
  • Боты
  • Программы
    • Парсинг
  • Android, iOS приложения
  • Статьи
    • Маркетплейсы
    • Безопасность в сети
    • Заработок в интернете
    • Сайтостроение
    • Оптимизация сайтов
    • Обучение
    • Криптовалюты
    • Новости
    • Разное
    • Новости сайта
Партнерская программа Mpay69
Подробнее
Партнерская программа Mpay69
Бесплатная рассылка на Email, с помощью сервиса Smtp.bz
Подробнее
Бесплатная рассылка на Email, с помощью сервиса Smtp.bz
Партнерская программа Юником24
Подробнее
Партнерская программа Юником24
PSB Proxy – платформа для приобретения резидентных прокси
Подробнее
PSB Proxy – платформа для приобретения резидентных прокси
Как собрать ГЕО координаты для парсинга в несколько кликов
Подробнее
Как собрать ГЕО координаты для парсинга в несколько кликов
Скачать текстовый редактор AkelPad 4.7.8 Portable + All Plugins
Подробнее
Скачать текстовый редактор AkelPad 4.7.8 Portable + All Plugins
Скрипт пирамиды Baksik MLM
Подробнее
Скрипт пирамиды Baksik MLM
Скрипт пирамиды со ставками Likme
Подробнее
Скрипт пирамиды со ставками Likme
Cкрипт экономической игры Chance-Profit
Подробнее
Cкрипт экономической игры Chance-Profit
Цифровая платформа Taboola
Подробнее
Цифровая платформа Taboola
Loading...

Внимание! Данный материал предоставлен сайтом DirectoryWeb.ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое

  • Топ просмотров
  • Высший рейтинг
  • Самый топ
TikTok Ads - как получить купон на 90 евро и 50% скидку на рекламу

TikTok Ads - как получить купон на 90 евро и 50% скидку на рекламу

  • redactor
  • 14.05.2025
  • 1 225
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Топ платежных систем для арбитража трафика

Топ платежных систем для арбитража трафика

  • ddspprtn
  • 27.05.2025
  • 1 95
  • 0
    • 0
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
PSB PROXY - обзор и отзывы

PSB PROXY - обзор и отзывы

  • redactor
  • 28.05.2025
  • 1 27
  • 0
    • 0
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
TikTok Ads - как получить купон на 90 евро и 50% скидку на рекламу

TikTok Ads - как получить купон на 90 евро и 50% скидку на рекламу

  • redactor
  • 14.05.2025
  • 1 225
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Топ платежных систем для арбитража трафика

Топ платежных систем для арбитража трафика

  • ddspprtn
  • 27.05.2025
  • 1 95
  • 0
    • 0
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
PSB PROXY - обзор и отзывы

PSB PROXY - обзор и отзывы

  • redactor
  • 28.05.2025
  • 1 27
  • 0
    • 0
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Скрипт сайта рулетки CSGOSHIK

Скрипт сайта рулетки CSGOSHIK

  • DirectoryWeb
  • 01.10.2018
  • 1 3 833
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Скрипт онлайн казино Фараон

Скрипт онлайн казино Фараон

  • DirectoryWeb
  • 30.09.2018
  • 1 7 863
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Скрипт онлайн казино FlashCasino 1.2

Скрипт онлайн казино FlashCasino 1.2

  • DirectoryWeb
  • 26.10.2018
  • 1 3 392
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Cкрипт онлайн лотереи Lottery for life

Cкрипт онлайн лотереи Lottery for life

  • DirectoryWeb
  • 17.10.2018
  • 1 4 183
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Скрипт онлайн казино Вулкан NEW

Скрипт онлайн казино Вулкан NEW

  • DirectoryWeb
  • 28.10.2018
  • 1 12 223
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Скрипт Bitcoin игр онлайн Quizda

Скрипт Bitcoin игр онлайн Quizda

  • DirectoryWeb
  • 01.08.2018
  • 1 4 138
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Скрипт игры моментальной лотереи - рулетки Best-Loto

Скрипт игры моментальной лотереи - рулетки Best-Loto

  • DirectoryWeb
  • 23.01.2018
  • 1 8 389
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Скрипт моментальной лотереи Fast Loto

Скрипт моментальной лотереи Fast Loto

  • DirectoryWeb
  • 05.10.2017
  • 1 7 865
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Скрипт онлайн казино Brilliant-Club

Скрипт онлайн казино Brilliant-Club

  • DirectoryWeb
  • 02.07.2017
  • 1 10 129
  • 0
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5
  • Подробнее..
Информация
  • О проекте
  • Правила
  • Статистика
  • Облако тегов
  • Контакты
  • Карта сайта
Каталог
  • Скрипты
  • Боты
  • Программы
  • Android, iOS приложения
  • Статьи
Арбитраж трафика
  • Кейсы
  • Партнёрские программы
  • Сервисы
  • Инструменты
  • Обзоры
Полезные ссылки
  • Партнерские программы и сервисы
  • Скрипты, моды и шаблоны
Заказ
Быстрый вход

Используйте социальные сети для быстрой регистрации и авторизации.

ВКонтакте
Создать аккаунт / Регистрация
Авторизация

Я забыл свой пароль