我有一些大尺寸文件(MP4
和Zip
格式),我想通过Telegram bot将它们发送到我的聊天中,我使用下面的代码:
file_get_contents('https://api.telegram.org/bot[[app:token]]/sendDocument?chat_id=24523586&document='.$fileAddress);
但它只能发送小尺寸,小于50MB的文件!但我知道file_id
发送的文档没有文件大小限制。你可以看到this page
现在我如何为我的文件制作file_id
?我的文件上传到我的服务器上,我正在使用PHP。
答案 0 :(得分:3)
Telegram bot API只能通过url
param发送小于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);
答案 1 :(得分:2)
您可以在服务器上安装pwrtelegram。然后只需切换API URL,您就可以使用机器人上传最多1.5 GB的文件。这是唯一可行的方法。查看链接以获取更多信息。
此外,无法传递任何随机file_id
,因为Telegram不会发送它。您只能传入之前由您的机器人上传的file_id。要绕过限制,请使用上面的方法。它运作得很好。
答案 2 :(得分:-1)
首先,您应该将文件发送到机器人,然后获取文件ID。
之后你可以使用fileID来发送你的文件,这样负载将在Telegram的服务器上,而不是你的。当然,您可以从自己的服务器发送文件,但这种方法会降低机器人的速度。
请注意,当您向bot发送文件并获取fileID时,从那一刻起,文件可以立即发送,而无需将文件存储在您自己的服务器上。
您不需要制作文件ID。
您只需要将文件发送到僵尸程序并让机器人找到答案 fileID并将其保存在某处以备将来转移。