Как с помощью telegramm bot api отправить изображение расположенное на своем сервере?

Доброго времени суток!
Недавно начал разбираться с api telegram, возникла задача ботом отправлять в чат изображения расположенные на своем сервере. На данный момент управление ботом реализовано посредством GET запросов.

В документации для данных целей предусмотрен метод sendPhoto, и параметр photo который отвечает за то, какое изображение будет отправлено.
Исходя из описания параметра:
...upload a new photo using multipart/form-data.
в случае когда изображение еще не попадало на сервера telegram параметр должен быть типа InputFile.

Сам тип данных InputFile описан так:

This object represents the contents of a file to be uploaded. Must be posted using multipart/form-data in the usual way that files are uploaded via the browser.


Помогите пожалуйста разобраться, как правильно составить запрос для отправки изображения.
UPD. Пробую отправить файл POST запросом (приведен ниже), однако их сервер возвращает ошибку
504 Gateway Time-out

Сам запрос (поправлен chat_id):

Заголовки:
Content-Length: 2606
Content-Type: multipart/form-data; boundary=1fb86806-7d2e-405f-b361-a85eb2524129

Тело:
Content-Disposition: form-data; name="chat_id"
1043***65
--1fb86806-7d2e-405f-b361-a85eb2524129
Content-Disposition: form-data; name="photo"; filename="images.jpg"
Content-Type: image/jpeg

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

--1fb86806-7d2e-405f-b361-a85eb2524129
  • Вопрос задан
  • 14232 просмотра
Пригласить эксперта
Ответы на вопрос 1
kmx
@kmx
У меня как-то так отправляет:
$url  = $apiURL. "sendPhoto?chat_id=" . $chatID";
	$post_fields = array('chat_id'   => $chatID,
	'caption' => 'Подпись под картинкой',
        'photo'     => new CURLFile(realpath('/img/1.png'))
	);
	$ch = curl_init(); 
	curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "Content-Type:multipart/form-data"
	));
	curl_setopt($ch, CURLOPT_URL, $url); 
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
	curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); 
	$output = curl_exec($ch);
Ответ написан
Ваш ответ на вопрос

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

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