Пишем простых ботов на php и разбираемся как это работает.
Просто, доступно, на конкретных примерах.
Telegram боты на php своими руками. Простые примеры.
Сюда буду сваливать примеры с комментариями.
Расписывать что да как — времени нет, извините.
Итак, этот раздел посвящен телеграм ботам.
И, как можно понять из названия, боты будут написаны именно РНР.
Постараюсь максимально упростить и писать без использования библиотек, модулей и т.п. Максимально просто и понятно.
curl https://api.telegram.org/botXXXX:XXXXXXXXXXXXX/deleteWebhook curl -d «url=https://my.site.ru/bot/mytupobot.php» https://api.telegram.org/botXXXX:XXXXXXXXXXX/setWebhook curl https://api.telegram.org/botXXXX:XXXXXXXXXXXXX/getWebhookInfo
и готов написать своего первого бота прям срочно, чтобы хоть какой-то результат получить от этого. =)
Тупо-бот, самый простой телеграм бот на php, который почти ничего не делает болванка для проектов:
Итак, этот тупо-бот всё же чего-то делает.
Создание Telegram бота на PHP #1: основные понятия для работы с API
Например, бот умеет слушать сообщения чата в котором сидит и на команду /start выдавать тупо сообщение, смайлик и говорить что он на связи.
А для бота это самое главное — уметь слушать и уметь отправлять сообщение.
Постарался в примере показать некоторые детали. Такие как вставка смайлов в сообщения бота, парс-мод в html сообщения, выгребания из сообщений команд. Вроде самое необходимое есть и наглядно.
UPD: Исходники этих и других примеров php ботов расположены на гитЛабе https://gitlab.com/net4me/telegram-php и код лучше брать оттуда.
Тут код неудобно мне обновлять, но я стараюсь это делать по возможности.
Пример «welcome message».
Задача: При подключении юзера к каналу — выдать приветственное сообщение.
При покидании юзером канала — вывести прощальное сообщение.
Пример простой. Но заставляет задуматься, а что же там в этом контенте такого, что оттуда можно достать всё что угодно? Делаем самого неправильного бота дебагера.
Бот дебагер отладчик. Постит json объекты как есть
Само-собой разумеется, что запускать такого бота-отладчика в паблик чаты глупо, вредно и очень по лоховски.
Предполагается, что у нас есть приватный чат, куда приглашен наш бот, которому мы сейчас сделаем отладочную начинку.
Что мы сделали? Правильно. Все сообщения (кроме команды /start , на которую мы реагируем ) выдаём в сыром виде. Как есть.
Должен заметить, что PHP далеко не самый заточенный под ботов язык программирования. Но в качестве начала изучения telegram bot api вполне подходит и php.
Эти и другие примеры простых телеграм ботов, работающих через webHook вы найдете на github https://github.com/BenJanet4me/telegram-php
И конечно, до новых встреч на портале net4me!
Дополнение: Использование inline keyboard в сообщениях.
Спасибо 4eburashk.
Telegram бот на PHP за 10 минут
Свежие версии этих php ботов вы найдёте в нашем репозитории на gitLab: https://gitlab.com/net4me/telegram-php
Дополнение: У данной статьи появилось продолжение про использование curl и post для отправки в telegram фото, файлов, координат, аудио и т.д.
Добро пожаловать во вторую часть статьи!
- net4me.net home page
- Contacts
Источник: net4me.net
Простой бот для телеграм на PHP
В ответ получим токен (красная надпись на скриншоте). Отлично, теперь инициализируем бота. Перейдем по адресу
https://api.telegram.org/bot_token/setWebhook?url=https://upread.ru/telegram.php
Здесь адрес бота (https://upread.ru/telegram.php) – это файл PHP, на который телеграм будет слать вебхуки при новых событиях, например, при получении сообщения в чате. Адрес особо светить не надо, чтобы кто-то другой не мог вам слать POST-запросы от имени телеграма.
Если вы живете в России то наверняка придется сделать это либо через Tor, либо через VPN или зарубежное прокси – так как наш Роскомнадзор не любит телеграм. В дальнейшем такие ухищрения будут не нужны – надо только инициализировать.
Теперь приведём код файла telegram.php
$token = «токен»; $postData = file_get_contents(‘php://input’); $data = json_decode($postData, true); $mess = $data[‘message’][‘text’]; $chat_id = $data[‘message’][‘chat’][‘id’]; $otvet = «Простите, не понимаю. Сформулируйте, пожалуйста, запрос поточнее.»; $findme1 = «привет»; $findme2 = «хай»; $findme3 = «здравствуйте»; $findme4 = «здрасте»; if ((mb_stripos($mess, $findme1)!== false) || (mb_stripos($mess, $findme2)!== false) || (mb_stripos($mess, $findme3)!== false) || (mb_stripos($mess, $findme4)!== false)) $otvet = »
Что вы хотите узнать о компании UpRead.Ru?»; $response = array( ‘chat_id’ => $chat_id, ‘text’ => $otvet ); $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);
Теперь если кто-то напишет строку, содержащую «привет», «здравствуйте», «здрасте» или «hi», то в ответ ему прилетит фраза «
Что вы хотите узнать о компании UpRead.Ru?». В любом другом случае — «Простите, не понимаю. Сформулируйте, пожалуйста, запрос поточнее.». Не слишком большой словарный запас и число реакций у нашего электронного собеседника, но это самые основы.
Вот так просто можно безо всяких библиотек написать бота для телеграм на PHP. Особенность нашего самописного скрипта в том, что он будет работать на любом, даже шаред хостинге и не потребуется установки дополнительных компонентов. Если вам требуется создание бота для телеграм – пишите мне. Не бесплатно, но недорого помогу.
Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
заметки, php, telegram, бот
Бесплатный https и
домен RU в подарок
Источник: upread.ru
создание бота для telegram
Клавиатура с кнопками для Telegram бота на PHP script. В данном примере, показано как создать сразу 3 кнопки для клавиатуры и отправить через запрос в Telegram API. С данной клавиатурой нельзя использовать кнопки для ссылок или скрытым callback data запросом. В стандартном запросе, если не использовать параметры request_contact или request_location, будет запрос текста по названию кнопки (параметр text).
Официальная инструкция Telegram Api: https://core.telegram.org/bots/api#replykeyboardmarkup
Telegram bot создать кнопки и клавиатуру PHP script
пример запроса для Telegram API для создания клавиатуры с кнопками
$bot_token = «********* Бот Токен»; // Telegram bot токен
$chat_id = «TELEGRAM ЧАТ ID»; // не забываем добавить TELEGRAM CHAT ID
$reply = «Working»;
$url = «https://api.telegram.org/bot$bot_token/sendMessage»;
$keyboard = array(
«keyboard» => array(array(array(
«text» => «/button»
),
array(
«text» => «contact»,
«request_contact» => true // Данный запрос необязательный telegram button для запроса номера телефона
),
array(
«text» => «location»,
«request_location» => true // Данный запрос необязательный telegram button для запроса локации пользователя
)),
«one_time_keyboard» => true, // можно заменить на FALSE,клавиатура скроется после нажатия кнопки автоматически при True
«resize_keyboard» => true // можно заменить на FALSE, клавиатура будет использовать компактный размер автоматически при True
);
$postfields = array(
‘chat_id’ => «$chat_id»,
‘text’ => «$reply»,
‘reply_markup’ => json_encode($keyboard)
);
curl_setopt($curld, CURLOPT_POST, true);
curl_setopt($curld, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curld, CURLOPT_URL,$url);
curl_setopt($curld, CURLOPT_RETURNTRANSFER, true);
Какая разница между запросом измененного размера клавиатуры (True) и не измененного (False)?
измененный: not resizable:
Можно скрывать клавиатуру после нажатия кнопки автоматически: one_time_keyboard => Ture (для скрытия) or False