Я пытаюсь получить изображение из Телеграм канала, в котором находится бот и который может видеть сообщение. Код ниже работает и изображение выводятся, но проблема в том, что такие изображение публично выводить на своем сайте например не получится, так как ссылка на изображение состоит из токена бота, например
https://api.telegram.org/file/bot88**************/photos/file_15.jpg
насколько я понимаю, публично выкладывать токен бота не безопасно.
Каким образом я могу выводить изображение с публичной ссылкой.
Единственный вариант, который приходит мне на ум, это сохранять фотографии на своем сервере, а уже оттуда выводить, но этот вариант на крайний случай.
spoiler$token = '88**************';
$apiUrl = "https://api.telegram.org/bot$token/getUpdates";
$response = file_get_contents($apiUrl);
$data = json_decode($response, true);
if($data['ok'] && !empty($data['result'])) {
$resultArray = $data['result'];
foreach($resultArray as $row ) {
//текстовое сообщение
if(!empty($row['message']['text'])) {
echo $row['message']['text'].'<br>';
}
// поучаем фото
if(!empty($row['message']['photo'])) {
$rowPhoto = $row['message']['photo'];
$file_id = $rowPhoto[2]['file_id'] ?? $rowPhoto[0]['file_id'];
$photoUri = "https://api.telegram.org/bot$token/getFile?file_id=$file_id";
$phoroRes = file_get_contents($photoUri);
$photoData = json_decode($phoroRes, true);
$file_path = $photoData['result']['file_path'];
$imageUrl = "https://api.telegram.org/file/bot$token/$file_path";
echo "<img src=\"$imageUrl\" alt=\"Telegram Image\">";
echo "<br>". $row['message']['caption'];
}
}
}