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

У кого есть именнно работающее решение для телеграмм бота sendMediaGroup на чистом php без библиотек?

Как оказалось найти работающий пример очень большая сложность.

Отправляю одно фото без проблем, а вот с несколькими застрял сильно, и так и сяк пробовал, но безуспешно.
Поиски в сети тоже не привели к положительному результату, нашел вот такой пример и попытался его применить, убрав явные ошибки ( хотя говорилось что он рабочий ), но и итоге ничего (

$url = "https://api.telegram.org/bot" . "TOKEN" . "/sendMediaGroup";
    
 $postContent = [
            'chat_id' => "ID",
            'media' => json_encode([
                ['type' => 'photo', 'media' => 'attach://data.jpg' ],
                ['type' => 'photo', 'media' => 'attach://data.jpg' ],
            ]),
            'data1.jpg' => new CURLFile(realpath("/var/www/html/data.jpg")),
            'data.jpg' => new CURLFile(realpath("/var/www/html/data.jpg")),
        ];
    
    $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);

Код превратил в такой вид:
$url = "https://api.telegram.org/bot" . $api . "/sendMediaGroup";
    				
					$url_1 = $src_to_img . '1620919407-file_555.jpg';
					$url_2 = $src_to_img . '1620919409-file_556.png';
					$url_3 = $src_to_img . '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);


где

$src_to_img = "/var/www/www-root/data/www/mytelegrambot.club/escooter/img/users_img/";

$api - это токен
Картинки это лежащие на сервере картинки по пути в переменных $url_1, $url_2, $url_3

Мне бы еще текст к изображениям отправить, было бы вообще супер если в примере будет

Друзья, если что решение просто, отправляйте просто ссылки

$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);
  • Вопрос задан
  • 485 просмотров
Решения вопроса 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
"'Content-Type: multipart/form-data'" устанавливается автоматом при передаче файлов, а чего ты с аттачем мучаешься у тебя отправка все равно же с веб-сервера - передавал бы ссылки. И то что ты передаешь это всего лишь содержимое Message
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 16:55
10000 руб./за проект
23 апр. 2024, в 16:10
1500 руб./в час
23 апр. 2024, в 16:05
3000 руб./за проект