【问题标题】:Using PHP Telegram Bot InputMediaPhoto Method使用 PHP Telegram Bot InputMediaPhoto 方法
【发布时间】:2020-07-26 22:00:08
【问题描述】:

我试图用我的 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;
}

【问题讨论】:

  • post 函数的输出是什么?你从 Telegram 收到什么回复

标签: php bots telegram


【解决方案1】:

有两个问题。

您需要使用的方法称为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']
        ])
    ];

【讨论】:

  • 解决方案。谢谢!但是如何发送本地文件?
  • @mdarmanam,我做了一些 Python 来发送合影。请在此处查看,它可能会给您一些解决问题的想法。 stackoverflow.com/a/64800373/8137941
猜你喜欢
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
  • 2018-09-22
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 2016-03-14
  • 1970-01-01
相关资源
最近更新 更多