Отправить сообщение с несколькими изображениями Telegram API
Знакомы методы отправки 1 фотографии с описанием и метод групповой отправки изображений но там нет параметра общего описания для всей группы изображений, а только к каждому изображению индивидуально. Так же знаком метод включения ссылок на изображения в теле сообщения. Но это тоже не вариант.
Существует ли метод отправки сообщения с прикреплёнными к нему несколькими изображениями.
На изображении идеальный вариант - сообщение с вложенным в него изображениями.
Максимальный вариант который получился - отправка сначала группы фотографий и потом отправка уже обычного сообщения.
Ответы (2 шт):
Что бы получить общее описание, просто добавьте его к первому media-елементу в sendMediaGroup методе:
public function testSendMediaGroup()
{
$message = $this->bot->sendMediaGroup([
'chat_id' => getenv('TELEGRAM_USER_ID'),
'media' => [
[
'type' => 'video',
'media' => 'https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_480_1_5MG.mp4',
'caption' => 'Test' // Здесь ваше описание
], [
'type' => 'photo',
'media' => fopen('https://picsum.photos/640', 'r'),
],
],
]);
$this->assertInstanceOf(Message::class, $message);
}
Вот самый хороший, и работающий пример отправки:
function sendTelegram($method, $response) {
$ch = curl_init('https://api.telegram.org/bot' . TOKEN . '/' . $method);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $response);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
sendTelegram (
'sendMediaGroup',
array (
'chat_id' => $data['message']['chat']['id'],
'media' => json_encode([
['type' => 'photo', 'media' => 'attach://1.jpg', 'caption' => 'step 1' ],
['type' => 'photo', 'media' => 'attach://2.jpg', 'caption' => 'step 2' ],
]),
'1.jpg' => curl_file_create(realpath('1.jpg')),
'2.jpg' => curl_file_create(realpath('2.jpg'))
)
);
Результат:




