使用 PHP Telegram Bot InputMediaPhoto 方法

Using PHP Telegram Bot InputMediaPhoto Method

我正尝试使用我的 Telegram 机器人将一些图片发送到一条消息中。我用了InputMediaPhoto方法发送,可惜没用

这是我的代码:

$url = "https://api.telegram.org/bot" . "TOKEN" . "/InputMediaPhoto";
$postContent = [
    'chat_id' => $GLOBALS['chatId'],
    'media' => [
        ['type'=>'photo' ,'media' => 'http://www.alcan5000.com/JPG/64Caliente.jpg'], //Just for test
        ['type' => 'photo' ,'media' => 'http://www.alcan5000.com/JPG/64Caliente.jpg'],
        ['type' => 'photo' ,'media' => 'http://www.alcan5000.com/JPG/64Caliente.jpg']
    ]
];
post($url, $postContent);


function post($url, $postContent)
{

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postContent);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($curl);
    curl_close($curl);
    return $result;
}

有两个问题。

您需要使用的方法叫做sendMediaGroup。此外,您发送的媒体必须在 JSON 序列化数组中。

将您的代码更改为此应该有效:

 $url = "https://api.telegram.org/bot" . "TOKEN" . "/sendMediaGroup";
 $postContent = [
        'chat_id' => $GLOBALS['chatId'],
        'media' => json_encode([
            ['type'=>'photo' ,'media' => 'http://www.alcan5000.com/JPG/64Caliente.jpg'],
            ['type' => 'photo' ,'media' => 'http://www.alcan5000.com/JPG/64Caliente.jpg'],
            ['type' => 'photo' ,'media' => 'http://www.alcan5000.com/JPG/64Caliente.jpg']
        ])
    ];