Создаём чат бот Telegram за минуту бесплатно
Create a PHP Telegram chat bot in a minute for free
Что нам понадобится:
- Домен с сертификатом SSL
- Web-сервер с поддержкой PHP
- Профиль Telegram
Для начала создадим имя бота и его ссылку:
В папку directory поместим файл bot.php замените прочерк на полученный от botfather уникальный токен вашего чат бота
<?php
$data = json_decode(file_get_contents('php://input'), TRUE);
file_put_contents('file.txt', '$data: '.print_r($data, 1)."\n", FILE_APPEND);
$token = '----------------------------------------------';
$message = $data['message']['text'];
$message1 = 'Hello My Friend';
$params = [ 'chat_id' => $data['message']['chat']['id'], 'text' => $message1
];
file_get_contents('https://api.telegram.org/bot'.$token.'/sendMessage?'.http_build_query($params));
Заключительный шаг переходим по собранной ссылке,
Объединим ваш сайт для приёма всех получаемых данных с только что созданного чат бота
Для этого соберём ссылку https://api.telegram.org/bot----------------------------------------------/setWebhook?url=https://site.ru/directory/bot.php
теперь любые сообщения бот будет отправлять на ваш Web-сервер в файл file.txt
Выводится сообщение:
{"ok":true,"result":true,"description":"Webhook was set"} при повторных переходах {"ok":true,"result":true,"description":"Webhook is already set"}
Значит сервер привязан и всё в порядке, можно слать любое сообщение боту
Полезные ссылки https://core.telegram.org/bots/api
9 комментариев
Имеем файл https://socboost.ru/test/bot.php
Который привязали к боту @rro_bot методом запроса к:
https://api.telegram.org/bot5214842839:AAGLsMzJh_T0g5iih3Q7tSXbBbX_AP4bwF8/setWebhook?url=https://socboost.ru/test/bot.php
<?php
$data = json_decode(file_get_contents('php://input'), TRUE);
file_put_contents('file.txt', '$data: '.print_r($data, 1)."\n", FILE_APPEND);
$token = '5214842839:AAGLsMzJh_T0g5iih3Q7tSXbBbX_AP4bwF8';
$message = $data['message']['text'];
$message1 = 'Hello My Friend';
$params = [ 'chat_id' => $data['message']['chat']['id'], 'text' => $message1
];
file_get_contents('https://api.telegram.org/bot'.$token.'/sendMessage?'.http_build_query($params));
Бот запущен но осталось добавить логику на добавление кнопок меню u.to/F1YPHA
справа только кнопки
$data = json_decode(file_get_contents('php://input'), TRUE);
define('TOKEN', '5214842839:AAGLsMzJh_T0g5iih3Q7tSXbBbX_AP4bwF8');$callback_query = false;
if(empty($data['message']['chat']['id']) && empty($data['callback_query'])) {exit();} elseif(!empty($data['callback_query'])) {
$chat_id = $data['callback_query']['message']['chat']['id'];
$callback_query = true;} else {
$chat_id = $data['message']['chat']['id'];}
function send_telegram($method, $response) {
$ch = curl_init('https://api.telegram.org/bot' . TOKEN . '/' . $method);
curl_setopt($ch, CURLOPT_POSTFIELDS, $response);
$res = curl_exec($ch);}
if(!$callback_query) {
if(!empty($chat_id) && !empty($data['message']['text'])) {
$text = $data['message']['text'];
$user_id = $data['message']['from']['id'];
$user_name = $data['message']['chat']['username'];
$keyboard = false;
if(mb_stripos($text, '/start') !== false || mb_stripos($text, 'Привет') !== false) {
$msg_reply = 'Привет, ' . $user_name . '.';
$keyboard = array('keyboard' => array(array(array(
'text' => "История выплат \xF0\x9F\x93\x83",),array(
'text' => "О нас \xF0\x9F\x9A\x80",))),
'resize_keyboard' => true,'one_time_keyboard' => true);
} elseif(mb_stripos($text, '/job') !== false || mb_stripos($text, 'О нас') !== false) {
$msg_reply = 'Наши задачи:' . "\n" . 'Бот создан для раздачи монет за подписку.';
} elseif(mb_stripos($text, '/url') !== false) {
$msg_reply = 'О нас' . "\n" . 'Бот создан для раздачи монет за подписку.'
. "\n" . 'О начале раздач будет объявлено, как будет завершена разработка реферальной системы.'
. "\n" . 'Всего планируется раздать 100 монет до конца 2022 года.';}}}
$msg_params = array('chat_id' => $chat_id,'text' => $msg_reply);
if(!empty($keyboard)) {$msg_params['reply_markup'] = json_encode($keyboard);}
send_telegram('sendMessage', $msg_params);
Чтобы не исчезало меню после каждого клика
<?php
// Получаем параметр word из GET запроса
$word = isset($_GET['word']) ? $_GET['word'] : '';
// Заменяем пустые пробелы на пробелы
$word = str_replace(' ', '%20', $word);
// Определяем ваш Telegram ID
$yourTelegramID = 448722664;
// Токен вашего бота
$token = ' ';
// Сообщение, которое будет отправлено вам в Telegram
$message = 'Word: ' . $word;
// Параметры запроса к API Telegram для отправки сообщения
$params = [
'chat_id' => $yourTelegramID,
'text' => $message
];
// Отправляем запрос к API Telegram
file_get_contents('https://api.telegram.org/bot' . $token . '/sendMessage?' . http_build_query($params));
?>