telegram-api icon indicating copy to clipboard operation
telegram-api copied to clipboard

EditMessageMedia method not working

Open MrDarkest opened this issue 5 years ago • 1 comments

Which version are you using?

3.5.0

Description of problem

EditMessageMedia method doesn't work.

I've tried with this code:

$editMessageMedia = new EditMessageMedia();
$editMessageMedia->chat_id = "@channelname"
$editMessageMedia->message_id = $message_id;
$photo = new Photo();
$photo->media = "https://my-host/image.png"
$photo->caption = "A caption";
$photo->parse_mode = "Markdown";
$editMessageMedia->media = $photo;
$promise = $tgLog->performApiRequest($editMessageMedia);
$promise->then(
	function () {
        },
        function (\Exception $exception) {
	       error_log($exception->getMessage());
       }
);
$loop->run();

But it always fails with the error: "Bad Request: can't parse InputMedia: Media is not specified".

With the same parameters the classic POST call to telegram api with a JSON body works fine.

$boturl = "https://api.telegram.org/bot".TELEGRAM_BOT_KEY."/editMessageMedia";
$bodyobj = ["chat_id" => $chat_id, "message_id" => $message_id, "media" => ["type" => "photo", "media" => $url, "caption" => $caption, "parse_mode" => "Markdown"]];
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,            $boturl );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST,           1 );
curl_setopt($ch, CURLOPT_POSTFIELDS,     json_encode($bodyobj) ); 
curl_setopt($ch, CURLOPT_HTTPHEADER,     array('Content-Type: application/json')); 

$result=curl_exec ($ch);

MrDarkest avatar Dec 20 '19 17:12 MrDarkest

This should work right out of the box. Will take a look at it once my pc is fixed.

Thanks!

unreal4u avatar Dec 31 '19 14:12 unreal4u