Публикация контента в Telegram через API

Публикация контента в Telegram через API
Автоматизация процесса публикации в Telegram с помощью Telegram API и PHP Telegram Bot SDK.
Шаг 1: Создание бота и получение API-токена
  1. Запуск BotFather:
    • Откройте Telegram и найдите бота BotFather, используя поиск по username: @BotFather.
    • Начните диалог с BotFather.
  2. Создание нового бота:
    • Отправьте команду /newbot в чат с BotFather.
    • Введите имя и уникальный username для вашего бота.
  3. Получение API-токена:
    • BotFather предоставит вам API-токен. Запишите его.
Шаг 2: Получение chat_id вашего канала
  1. Создайте канал в Telegram, если у вас его еще нет.
  2. Добавьте бота в администраторы канала.
  3. Отправьте сообщение в канал и используйте следующий 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();