面对问题,当我尝试将 GIF 发送到我的机器人时,机器人无法访问图像的原始大小。似乎电报服务器将其转换为 mp4(这是个好主意,看起来不错),当我尝试下载它时 - 它总是看起来像一个最大 320 像素的缩略图。
看起来,就像它是一个api错误,因为例如这里:
它描述为 600x473px,但实际下载的 mp4 大小是:
所以,试图理解 - 我在这里错了,因为我的项目需要原始 gif 大小......也许这里存在任何解决方法?
附言。如果手动将 gif 转换为 mp4 并保存质量和大小然后提交给 bot - 它工作得很棒,没有任何额外的压缩等,但是在使用 bot 之前要求使用是不可接受的。
更新 :
要重现(您需要 bot/bot_token 并且还需要能够接收带有 json 的 webhook):
1)通过 Windows 10 电报客户端 (v2.1.10)将此 gif ( https://c2n.me/47Y3H37.gif ) 发送到机器人。使用“不压缩发送”。GIF 大小:600x473, 3.35MB
2) Bot 接收和 Telegram 发送 webhook :
{
"update_id": 290360893,
"message": {
"message_id": 21,
"from": {
"id": 101483786,
"is_bot": false,
"first_name": "edited",
"last_name": "edited",
"username": "edited",
"language_code": "en"
},
"chat": {
"id": edited,
"first_name": "edited",
"last_name": "edited",
"username": "edited",
"type": "private"
},
"date": 1591962500,
"animation": {
"file_name": "9Ywn9p.gif.mp4",
"mime_type": "video/mp4",
"duration": 4,
"width": 600,
"height": 473,
"thumb": {
"file_id": "AAMCAgADGQEAAxVe42t2MTQQrFMyXbskwWiNkHjm3wACKwgAAtZ-GEtFrAh9bgzTOnpJm5QuAAMBAAdtAAMIgQACGgQ",
"file_unique_id": "AQADekmblC4AAwiBAAI",
"file_size": 15304,
"width": 320,
"height": 252
},
"file_id": "CgACAgIAAxkBAAMVXuNrdjE0EKxTMl27JMFojZB45t8AAisIAALWfhhLRawIfW4M0zoaBA",
"file_unique_id": "AgADKwgAAtZ-GEs",
"file_size": 68253
},
"document": {
"file_name": "9Ywn9p.gif.mp4",
"mime_type": "video/mp4",
"thumb": {
"file_id": "AAMCAgADGQEAAxVe42t2MTQQrFMyXbskwWiNkHjm3wACKwgAAtZ-GEtFrAh9bgzTOnpJm5QuAAMBAAdtAAMIgQACGgQ",
"file_unique_id": "AQADekmblC4AAwiBAAI",
"file_size": 15304,
"width": 320,
"height": 252
},
"file_id": "CgACAgIAAxkBAAMVXuNrdjE0EKxTMl27JMFojZB45t8AAisIAALWfhhLRawIfW4M0zoaBA",
"file_unique_id": "AgADKwgAAtZ-GEs",
"file_size": 68253
}
}
}
,所以你可以在那里看到,大小是正确的,但是重量 - 不,它只有 68253 字节 = 66.65kb,而不是 ~3.35MB(因为转换而少了一些)
3) Get File_id : CgACAgIAAxkBAAMVXuNrdjE0EKxTMl27JMFojZB45t8AAisIAALWfhhLRawIfW4M0zoaBA from this webhook and trying to use it in api by calling GET " https://api.telegram.org/bot {your_bot_token} /getFile?file_id=CgACAgIAAxkBAAMVXuNrdjE0EKxTMl27JMFojZB45t8AAisIAALWfhhLRawIfW4M0zoaBA" and you will receive :
{
"ok": true,
"result": {
"file_id": "CgACAgIAAxkBAAMVXuNrdjE0EKxTMl27JMFojZB45t8AAisIAALWfhhLRawIfW4M0zoaBA",
"file_unique_id": "AgADKwgAAtZ-GEs",
"file_size": 68253,
"file_path": "animations/file_12.mp4"
}
}
4) 使用此 file_path 下载文件:GET " https://api.telegram.org/file/bot {your_bot_token} /animations/file_12.mp4" 和...获取此 mp4 文件:https ://c2n.me/ 47Y4oAv.mp4,带有损失质量、重量和尺寸 (320x252)
但是,当您尝试从 Telegram 客户端下载它时 - 通过单击“另存为” - 工作正常,mp4 具有适当的大小/重量。所以看起来像一个api错误......
update#2 :尝试通过 tfs 电报支持提交,但也无法使用我的电话号码登录...(https://c2n.me/47Yqswl.png)。@pavel_durov,你能把这一切都修好吗:))