【问题标题】:How to send big files from URL to Telegram bot?如何将大文件从 URL 发送到 Telegram 机器人?
【发布时间】:2017-09-01 14:04:45
【问题描述】:

我有一些大文件(MP4Zip 格式),我想通过 Telegram 机器人将它们发送到我的聊天室,我使用了以下代码:

file_get_contents('https://api.telegram.org/bot[[app:token]]/sendDocument?chat_id=24523586&document='.$fileAddress);

但它只能发送小于 50MB 的小文件!但我知道file_id 发送的文档没有文件大小限制。可以看this page
现在我怎样才能为我的文件制作file_id?我的文件上传到我的服务器上,我正在使用 PHP。

【问题讨论】:

    标签: php telegram telegram-bot php-telegram-bot


    【解决方案1】:

    Telegram bot API 只能通过 url 参数发送小于 20 MB 的文件,您应该查找 Sending Files 部分。

    如果您想发送 20-50 MB 的文件,您应该下载并重新上传到 Telegram bot API 服务器。
    你可以参考这个简单的代码

    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL => 'https://api.telegram.org/bot131210513:AXXXXXX/sendDocument?caption=Hello+World&chat_id=24523586',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            'Content-Type: multipart/form-data'
        ],
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => [
            'document' => curl_file_create('/etc/hosts', 'plain/text', 'Hosts-file.txt')
        ]
    ]);
    $data = curl_exec($curl);
    curl_close($curl);
    

    【讨论】:

      【解决方案2】:

      2021 年更新: Telegram now provides a self hostable Telegram Bot API 可以上传 1.5GB。

      您可以在您的服务器上安装pwrtelegram。然后只需切换 API URL,您就可以使用机器人上传多达 1.5 GB 的文件。这是唯一可能的方法。查看链接了解更多信息。

      另外,您不能传递任何随机的file_id,因为 Telegram 不会发送它。您只能传入您的机器人之前上传的 file_id。要绕过限制,请使用上述方法。效果很好。

      【讨论】:

      • 感谢您的帮助 :) 有没有简单的 php 源来为 PWRTelegram 发送文件?
      • 其实只要把 APi url 切换到 api.pwrtelegram.xyz 就可以了
      • 对不起,我将 APi url 切换到 api.pwrtelegram.xyz 但它不起作用!
      【解决方案3】:

      首先,您应该将文件发送到您的机器人,然后获取文件 ID。

      之后,您可以只使用 fileID 发送文件,这样负载将在 Telegram 的服务器上,而不是您的服务器上。当然,您可以将文件从您自己的服务器发送到,但这种方法会导致您的机器人速度降低。

      请注意,当您将文件发送到您的机器人并获取文件 ID 时,从那一刻起,文件可以立即发送,而无需将文件存储在您自己的服务器上。

      您不需要创建文件 ID。

      您只需将文件发送给机器人,让机器人发现 fileID 并将其保存在某处以供将来传输。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-14
        • 1970-01-01
        • 2022-01-10
        • 1970-01-01
        • 2018-05-17
        • 2019-06-02
        • 2018-10-25
        相关资源
        最近更新 更多