Как создать автоматический импорт сообщений из Telegram в WordPress

Автоматический импорт сообщений из Telegram в WordPress позволяет интегрировать популярный мессенджер с вашим сайтом, что удобно для ведения новостной ленты, блога или сообщества. В этой статье мы подробно рассмотрим, как реализовать такой импорт с помощью Telegram Bot API, WordPress REST API и PHP, а также познакомимся с полезными плагинами и примерами кода.

Создание Telegram-бота и получение API токена

Первым шагом необходимо создать Telegram-бота, который будет получать сообщения из канала или чата и пересылать их на сайт WordPress. Для этого:

  • Откройте Telegram и найдите пользователя @BotFather.
  • Отправьте команду /newbot и следуйте инструкциям для создания бота.
  • Получите API токен, который понадобится для обращения к Telegram Bot API.

Этот токен является ключом для доступа к сообщениям и управлению ботом.

Настройка прав доступа бота

Чтобы бот мог читать сообщения из канала или группы, его нужно добавить в соответствующий чат с нужными правами. Для публичных каналов обычно достаточно добавить бота в подписчики, для приватных — назначить администратора.

Создание эндпоинта в WordPress для приёма сообщений

Чтобы получать сообщения от Telegram и автоматически сохранять их на сайте, создадим собственный REST API эндпоинт в WordPress. Это позволит безопасно принимать POST-запросы от Telegram и обрабатывать их.

add_action('rest_api_init', function () {
    register_rest_route('wpcodex/v1', '/telegram-webhook', array(
        'methods' => 'POST',
        'callback' => 'wpcodex_handle_telegram_webhook',
        'permission_callback' => '__return_true',
    ));
});

function wpcodex_handle_telegram_webhook(WP_REST_Request $request) {
    $data = $request->get_json_params();
    if (empty($data['message']['text'])) {
        return new WP_REST_Response('No message text', 400);
    }

    $text = sanitize_text_field($data['message']['text']);
    $chat_id = intval($data['message']['chat']['id']);

    // Создаем новый пост в WordPress
    $post_id = wp_insert_post(array(
        'post_title' => mb_substr($text, 0, 40),
        'post_content' => $text,
        'post_status' => 'publish',
        'post_type' => 'post'
    ));

    if (is_wp_error($post_id)) {
        return new WP_REST_Response('Error creating post', 500);
    }

    return new WP_REST_Response('Post created: ' . $post_id, 200);
}

Этот код добавляет REST маршрут /wp-json/wpcodex/v1/telegram-webhook, на который Telegram будет отправлять обновления.

Регистрация вебхука в Telegram для отправки обновлений

Теперь нужно зарегистрировать URL нашего эндпоинта в Telegram, чтобы бот автоматически присылал новые сообщения. Для этого отправляем запрос:

https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=https://yourdomain.ru/wp-json/wpcodex/v1/telegram-webhook

Где <YOUR_BOT_TOKEN> — токен бота, а https://yourdomain.ru — адрес вашего сайта. После этого все новые сообщения будут автоматически приходить на сайт.

Обработка мультимедиа и расширенные возможности

Часто в Telegram присылают не только текст, но и фотографии, видео, документы. Чтобы импортировать их на сайт, нужно расширить функцию обработки:

  • Обрабатывать поля photo, video, document.
  • Загружать файлы на сервер WordPress с помощью media_sideload_image или media_handle_sideload.
  • Вставлять загруженные медиа в контент или устанавливать в качестве миниатюры поста.

Пример загрузки фото из Telegram:

function wpcodex_download_telegram_photo($file_id) {
    $bot_token = 'YOUR_BOT_TOKEN';
    $response = wp_remote_get("https://api.telegram.org/bot$bot_token/getFile?file_id=$file_id");
    $body = json_decode(wp_remote_retrieve_body($response), true);
    if (!$body['ok']) return false;

    $file_path = $body['result']['file_path'];
    $file_url = "https://api.telegram.org/file/bot$bot_token/$file_path";

    $tmp = download_url($file_url);
    if (is_wp_error($tmp)) return false;

    $file = array(
        'name' => basename($file_path),
        'tmp_name' => $tmp,
    );

    $id = media_handle_sideload($file, 0);
    if (is_wp_error($id)) {
        @unlink($tmp);
        return false;
    }
    return $id;
}

Рекомендации по безопасности и производительности

При работе с вебхуками важно:

  • Проверять источник запросов и валидировать данные.
  • Использовать nonce или секретные ключи в URL для защиты от посторонних запросов.
  • Обрабатывать сообщения асинхронно, если ожидается большой поток данных, чтобы не тормозить сайт.
  • Лимитировать размер постов и файлов для предотвращения злоупотреблений.

Полезные плагины для интеграции Telegram и WordPress

Если вы хотите упростить процесс интеграции, обратите внимание на плагины:

  • WP Telegram Pro — мощный плагин для интеграции с Telegram, позволяет автоматически публиковать посты, отправлять уведомления и импортировать сообщения.
  • OmniVideo — для работы с видео, может помочь при загрузке медиа из Telegram.

Вывод

Автоматический импорт сообщений из Telegram в WordPress — это мощный инструмент для синхронизации контента и взаимодействия с аудиторией. С помощью Telegram Bot API, собственного REST API в WordPress и правильной обработки данных вы сможете создать гибкую систему публикации сообщений с Telegram прямо на сайте.

Как создать автоматический импорт данных из Google Sheets в WordPress
14.01.2026
Автоматический импорт из Twitter в WordPress: пошаговое руководство
16.04.2026
Создание автоматического ответа на отзывы в WordPress с AJAX
25.01.2026
Как создать автоматический импорт данных из Google Analytics в WordPress
11.03.2026
WordPress: как создать шорткод с атрибутами и выводом данных
10.11.2025