@vim-studio
Увлекаюсь Электросамокатами веду канал на ютуб

Телеграмм бот, отправка нескольких фотографий через sendMediaGroup не работает, в чем моя ошибка?

Есть задача отправить юзеру 3 фотографии, и текст с ними на пару.
С одной фото проблем нет, но вот с отправкой нескольких возникла проблема.

Я начал искать на просторах сети код, пробовать свои варианты, но как-то безуспешно. Я остановился на таком варианте:

$url = "https://api.telegram.org/bot" . $api . "/sendMediaGroup";
    				
					$url_1 = $src_to_img_for_telegram . '1620919407-file_555.jpg';
					$url_2 = $src_to_img_for_telegram . '1620919409-file_556.png';
					$url_3 = $src_to_img_for_telegram . '1620919407-file_557.jpg';

				 	$postContent = [
				            'chat_id' => $chat_id,
				            'media' => json_encode([
				                ['type' => 'photo', 'media' => 'attach://1620919407-file_555.jpg' ],
				                ['type' => 'photo', 'media' => 'attach://1620919409-file_556.png' ],
				                ['type' => 'photo', 'media' => 'attach://1620919410-file_557.jpg' ]
				            ]),
				            '1620919407-file_555.jpg' => new CURLFile(realpath($url_1)),
				            '1620919409-file_556.png' => new CURLFile(realpath($url_2)),
				            '1620919410-file_557.jpg' => new CURLFile(realpath($url_3))
				        ];
				    
				    $curl = curl_init();
				    curl_setopt($curl, CURLOPT_URL, $url);
				    curl_setopt($curl, CURLOPT_POSTFIELDS, $postContent);
				    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
				    curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: multipart/form-data']);
				    $result = curl_exec($curl);
				    curl_close($curl);

Разложил для себя вроде как все по полочкам, чтобы было максимально безошибочно, но результат ровно нулевой.
Подскажите пожалуйста пример именно рабочего кода, или в чем может быть моя ошибка?

И вопрос, обязательно ли работать через курл, можно ли через

$options = ['http' => ['method' => 'POST', 'header' => "Content-Type:application/x-www-form-urlencoded\r\n", 'content' => http_build_query($data)]];
		$context = stream_context_create($options);
		$responce = file_get_contents($website_send_mes, false, $context);

все другие запросы делаю через него, с ним мне понятнее работать.
  • Вопрос задан
  • 383 просмотра
Решения вопроса 1
@vim-studio Автор вопроса
Увлекаюсь Электросамокатами веду канал на ютуб
Для всех кто задается подобным вопросом:

Пример работающего у меня кода:

$url = "https://api.telegram.org/bot" . $api . "/sendMediaGroup";

$postContent = [
'chat_id' => $chat_id,
'media' => json_encode([
['type' => 'photo', 'media' => 'https://mytelegrambot.club/escooter/img/users_img/...' ],
['type' => 'photo', 'media' => 'https://mytelegrambot.club/escooter/img/users_img/...' ],
['type' => 'photo', 'media' => 'https://mytelegrambot.club/escooter/img/users_img/...' ]
]),

];

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postContent);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: multipart/form-data']);
$result = curl_exec($curl);
curl_close($curl);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы