Отправка документа/файла в чат Telegram (PHP)

Простой код, позволяющий отправить документ  в чат Телеграм (от бота):

public function sendDocument($chatID, $file){
$apiKey = 'ваш ключ';
$url = "https://api.telegram.org/bot" .
$apiKey . "/sendDocument?chat_id=" . $chatID;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);


$cFile = new CURLFile($file);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
"document" => $cFile
]);

$result = curl_exec($ch);
curl_close($ch);
}

Где {api-key} - это api ключ, который вы получили при регистрации бота.

{chat-id} - id чата с пользователем. Для того, чтобы получить этот id пользователь должен сам инициировать разговор с ботом, отправив ему /start (сейчас мы подразумеваем, что этот id у вас есть).

$file - путь до файла, который необходимо отправить.

Комментарии

Альберт
22.12.2022 14:12:59

Два дня искал решение! Спасибо! Можно еще подпись к файлу сделать, если изменить этот участок. $cFile = new CURLFile($file); curl_setopt($ch, CURLOPT_POSTFIELDS, [ \"document\" => $cFile, \"caption\" => \"Подпись к файлу\", ]);