Автоматизация процесса публикации в Telegram с помощью Telegram API и PHP Telegram Bot SDK.
Шаг 1: Создание бота и получение API-токена
- Запуск BotFather:
- Откройте Telegram и найдите бота BotFather, используя поиск по username: @BotFather.
- Начните диалог с BotFather.
- Создание нового бота:
- Отправьте команду /newbot в чат с BotFather.
- Введите имя и уникальный username для вашего бота.
- Получение API-токена:
- BotFather предоставит вам API-токен. Запишите его.
Шаг 2: Получение chat_id вашего канала
- Создайте канал в Telegram, если у вас его еще нет.
- Добавьте бота в администраторы канала.
- Отправьте сообщение в канал и используйте следующий PHP-код для получения chat_id:
require_once 'vendor/autoload.php'; use Telegram\Bot\Api; $telegram = new Api('YOUR_BOT_TOKEN_HERE'); $updates = $telegram->getUpdates(); foreach ($updates as $update) { if (isset($update['message']['chat']['id'])) { $chat_id = $update['message']['chat']['id']; echo "Chat ID: " . $chat_id; break; } }
Шаг 3: Установка PHP Telegram Bot SDK
Для работы с Telegram API на PHP мы будем использовать PHP Telegram Bot SDK. Установите библиотеку с помощью Composer:
composer require telegram-bot/api
Подробнее о методах и возможностях библиотеки можно узнать в документации PHP Telegram Bot SDK.
Шаг 4: Публикация контента в Telegram-канале
Теперь, когда у вас есть все необходимые данные, мы можем приступать к публикации контента. Обратите внимание на использование оптимизированного кода и комментариев для ясности.
Пример 1: Отправка текстового сообщения
require_once 'vendor/autoload.php'; use Telegram\Bot\Api; $telegram = new Api('YOUR_BOT_TOKEN_HERE'); $response = $telegram->sendMessage([ 'chat_id' => '@your_channel_username', // или используйте chat_id 'text' => 'Hello, Telegram!' ]); echo "Сообщение отправлено: " . $response->getMessageId();
Пример 2: Отправка фотографии
$response = $telegram->sendPhoto([ 'chat_id' => '@your_channel_username', 'photo' => 'https://example.com/image.jpg', 'caption' => 'Here is a photo!' ]); echo "Фотография отправлена: " . $response->getMessageId();
Пример 3: Отправка видео
$response = $telegram->sendVideo([ 'chat_id' => '@your_channel_username', 'video' => 'https://example.com/video.mp4', 'caption' => 'Check out this video!' ]); echo "Видео отправлено: " . $response->getMessageId();
Пример 4: Отправка документа
$response = $telegram->sendDocument([ 'chat_id' => '@your_channel_username', 'document' => 'https://example.com/document.pdf', 'caption' => 'Here is a document for you.' ]); echo "Документ отправлен: " . $response->getMessageId();
Пример 5: Отправка опроса
$response = $telegram->sendPoll([ 'chat_id' => '@your_channel_username', 'question' => 'What is your favorite programming language?', 'options' => json_encode(['Python', 'JavaScript', 'PHP', 'Java']), ]); echo "Опрос отправлен: " . $response->getPollId();
Пример 6: Групповая отправка сообщений
$chat_ids = ['@channel1', '@channel2', '@channel3']; $message = 'This is a broadcast message!'; foreach ($chat_ids as $chat_id) { $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => $message ]); } echo "Сообщения отправлены во все каналы.";
Пример 7: Отправка голосового сообщения
$response = $telegram->sendVoice([ 'chat_id' => '@your_channel_username', 'voice' => 'https://example.com/voice.ogg', 'caption' => 'Listen to this voice message!' ]); echo "Голосовое сообщение отправлено: " . $response->getMessageId();
Пример 8: Отправка местоположения
$response = $telegram->sendLocation([ 'chat_id' => '@your_channel_username', 'latitude' => 37.7749, 'longitude' => -122.4194 ]); echo "Местоположение отправлено: " . $response->getMessageId();