询问关于使用telegram API发送图像失败的问题


ask about send image failed using telegram API?

现在我正在使用电报API。我想发送一个图像与此API,但我的代码不工作,当我运行它,我有一个空白的响应。

下面是我的代码:
<?php


$comment= $_POST['tag'];
$url = 'https://api.telegram.org/botMY_BOT_ID/sendPhoto';
try {
$curl_connection = curl_init($url);
curl_setopt($curl_connection, CURLOPT_POST, true);
curl_setopt($curl_connection, CURLOPT_HTTPHEADER, array(
"Content-Type:multipart/form-data"));
curl_setopt($curl_connection, CURLOPT_URL, $url); 
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, http_build_query(array('chat_id'=>'chatid','photo' => "@"."maldini.jpg")));
//curl_setopt($curl_connection, CURLOPT_INFILESIZE, filesize("path/to/maldini.jpg"));
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
//Data are stored in $data
$data = curl_exec($curl_connection);
curl_close($curl_connection);
} catch(Exception $e) {
return $e->getMessage();
}
?>

但是,当我尝试用html发送图像时,我工作得很好。下面是我的HTML代码:

        <form method="POST" action="https://api.telegram.org/botMY_BOT_ID/sendPhoto" enctype="multipart/form-data">
        <label>
            <span>chat_id :</span>
            <input id="chat_id" type="text" name="chat_id" value="chat_id" />
        </label>
        <label>
            <span>caption :</span>
            <input id="caption" type="text" name="caption"/>
        </label>
        <label>
            <span>photo</span>
            <input id="photo" type="file" name="photo" />
        </label>      
         <label>
            <span>&nbsp;</span>
            <input type="submit" class="button" value="sendPhoto" />
        </label>    
    </form>

什么错了吗? ?任何帮助都将是感激的,提前谢谢:)

只需要通过url传递chat_id,试试下面的代码

<?php 
$url = "https://api.telegram.org/bot<bot_id>/sendPhoto?chat_id=".$chat_id ;
$post_fields = array('chat_id' => $chat_id,'photo'=> "/path/to/image.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);
echo "<pre>"; print_r($output);
?>