Публикация контента в Telegram через API
16-Янв-25 11:17
Автоматизация процесса публикации в 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();