Чтобы получить входящие сообщения в Telegram-боте с использованием Telegram API на PHP в WordPress, следуйте этим шагам:
1. Создайте Telegram-бота
- В Telegram найдите бота
@BotFather
. - Используйте команду
/newbot
для создания бота. - Следуйте инструкциям и получите токен доступа для вашего бота.
2. Настройте Webhook для бота
Telegram отправляет сообщения вашему боту через Webhook. Настройте URL, на который будут поступать обновления:
- Напишите скрипт PHP для обработки Webhook:
<?php
// Получите входящие данные
$content = file_get_contents("php://input");
$update = json_decode($content, true);
// Проверьте, что данные содержат сообщение
if (isset($update['message'])) {
$chat_id = $update['message']['chat']['id'];
$text = $update['message']['text'];
// Пример ответа пользователю
$response = [
'chat_id' => $chat_id,
'text' => "Вы отправили: " . $text
];
// Отправка ответа через Telegram API
file_get_contents("https://api.telegram.org/bot<TOKEN>/sendMessage?" . http_build_query($response));
}
?>
- Разместите этот скрипт на вашем WordPress-сервере (например, в папке
wp-content/uploads
).
- Настройте Webhook через запрос к Telegram API: Замените
<YOUR_BOT_TOKEN>
и<YOUR_DOMAIN>
на соответствующие значения.
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=https://<YOUR_DOMAIN>/path/to/your/script.php
3. Добавьте обработку в WordPress
Если вы хотите интегрировать обработку сообщений непосредственно в WordPress, вы можете использовать хуки и создать REST API-обработчик.
Пример плагина для обработки Telegram Webhook:
- Создайте файл плагина, например,
telegram-webhook.php
:
<?php
/*
Plugin Name: Telegram Webhook Handler
Description: Обработка входящих сообщений Telegram через Webhook
Version: 1.0
Author: Ваше имя
*/
add_action('rest_api_init', function () {
register_rest_route('telegram/v1', '/webhook', [
'methods' => 'POST',
'callback' => 'telegram_webhook_handler',
]);
});
function telegram_webhook_handler($request) {
$update = $request->get_json_params();
if (isset($update['message'])) {
$chat_id = $update['message']['chat']['id'];
$text = $update['message']['text'];
// Отправляем сообщение обратно пользователю
$response = [
'chat_id' => $chat_id,
'text' => "Вы отправили: " . $text
];
$token = 'ВАШ_ТОКЕН';
wp_remote_get("https://api.telegram.org/bot{$token}/sendMessage?" . http_build_query($response));
}
return rest_ensure_response(['status' => 'ok']);
}
- Активируйте плагин в WordPress.
- Установите Webhook на новый URL:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=https://<YOUR_DOMAIN>/wp-json/telegram/v1/webhook
4. Тестирование
- Отправьте сообщение боту в Telegram.
- Проверьте, отвечает ли бот корректно.
- Если возникают ошибки, проверьте логи сервера или используйте инструменты отладки (например, Postman).