Здравствуйте. Уже весь день пытаюсь сделать но не идет ни как. В телеграмм(
https://telegram.org) пишу бота. И там фотографию принимает API только как "multipart/form-data" а нужно отправить фото которое по адресу
http://i.imgur.com/ea9PB3H.png
писал:
$url = "https://api.telegram.org/bot124163913:AAHQ-axveIAcY24uT8ZlYgEW1jOmFqRmXXE/sendPhoto";
$post_fields = array('chat_id' => $chat_id,
'photo' => file_get_contents("http://i.imgur.com/ea9PB3H.png ")
// 'photo' => "http://i.imgur.com/ea9PB3H.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);
Может подскажете рабочий вариант?
PS. Отправка через форму
<form action="https://api.telegram.org/bot124163913:AAHQ-axveIAcY24uT8ZlYgEW1jOmFqRmXXE/sendPhoto" method="post" enctype="multipart/form-data">
<input type="text" name="chat_id" value="182347970">
<input type="file" name="photo">
<input type="submit">
</form>
работает отлично
UPD
function post($url, $parametros, $ch)
{
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $parametros);
$result= curl_exec($ch);
return $result;
}
$ch = curl_init();
$data = array(
'chat_id' => '182347970',
'photo' => 'http://i.imgur.com/ea9PB3H.png '
);
$data2 = http_build_query($data);
echo post ("https://api.telegram.org/bot124163913:AAHQ-axveIAcY24uT8ZlYgEW1jOmFqRmXXE/sendPhoto", $data2, $ch);
тоже не работает
ошибка
{"ok":false,"error_code":400,"description":"Bad Request: Wrong persistent file_id specified: contains wrong characters or has wrong length"}