Отправить сообщение с несколькими изображениями Telegram API

Знакомы методы отправки 1 фотографии с описанием и метод групповой отправки изображений но там нет параметра общего описания для всей группы изображений, а только к каждому изображению индивидуально. Так же знаком метод включения ссылок на изображения в теле сообщения. Но это тоже не вариант.

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

На изображении идеальный вариант - сообщение с вложенным в него изображениями.

Максимальный вариант который получился - отправка сначала группы фотографий и потом отправка уже обычного сообщения.

возможно ли вот так вот сформировать сообщение


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

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

Что бы получить общее описание, просто добавьте его к первому 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);
    }

Сообщение: Preview

→ Ссылка
Автор решения: bot

Вот самый хороший, и работающий пример отправки:

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'))
  )
);

Результат:

прислано шаг первый шаг второй

→ Ссылка