Как отправить картинку с текстом в телеграмм чат?

Код публикует пост в чат телеграм. Нужно в этот код добавить картинку по url в формате .svg одним постом

<?php
$comment = $_POST['comment']; //комментарий 
$photo = $_POST['photo']; //url картинки

function parser($url){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    if($result == false){     
      echo "Ошибка отправки запроса: " . curl_error($curl);
      return false;
    }
    else{
      return true;
    }
}

$message .= "текст html $comment ...";

$token = "7328529191:AAERCWqdc3vLRCWqdc3RCWqdc33M";
$chat_id = "-1002356546755";

$ch = curl_init('https://api.telegram.org/bot' . $token . '/sendMessage');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrQuery);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);

parser("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&disable_web_page_preview=True&text={$message}");

Ниже код скопировал из интернета, как его совместить с моим?

$arrayQuery = [
    'chat_id' => 1424646511,
    'caption' => 'Проверка работы',
    'photo' => curl_file_create(__DIR__ . '/cat.jpg', 'image/jpg' , 'cat.jpg')
];      
$ch = curl_init('https://api.telegram.org/bot'. $token .'/sendPhoto');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrayQuery);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);

Ответы (1 шт):

Автор решения: Solt

Ну, как-то так:

<?php

$comment = $_POST['comment']; //комментарий 
$photo = $_POST['photo']; //url картинки

$message .= "текст html $comment ...";

$token = "7328529191:AAERCWqdc3vLRCWqdc3RCWqdc33M";
$chat_id = "-1002356546755";

$arrayQuery = [
    'chat_id' => $chat_id,
    'caption' =>$message,
    'photo' => $photo,
    //Если картинка в файле, то
    //'photo' => curl_file_create('<путь к файлу>', 'image/jpg' , '<название файла>')
    'parse_mode' => 'HTML',
];      

$ch = curl_init('https://api.telegram.org/bot' . $token . '/sendPhoto');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrayQuery );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);
echo $res;

Рекомендую пойти вот сюда https://www.php.net/ и почитать (пару лет хватит).

А потом пойти вот сюда https://core.telegram.org/bots/api#sendphoto и поучить АПИ бота.

Без этого всё равно ничего не выйдет, а писать за вас вряд ли кто-то станет.

Даже chatGPT не справляется, как показывают постоянные посты.

→ Ссылка