Telegram机器人api:GIF上传下载大小的问题。

问题描述 投票:0回答:1

面临的问题是,当我试图发送GIF到我的机器人时,但机器人无法访问图像的原始大小。似乎telegram服务器将其转换为mp4(这是一个好主意,看起来很好),当我试图下载它 - 它 始终看起来像一个缩略图 最大320px的大面。

看起来,像是一个 api bug,因为比如这里。

enter image description here

它描述为600x473px,但真正下载的mp4大小是 。

enter image description here

所以,我想了解--我错在哪里?,因为我的项目需要原始的gif大小... ... 也许这里存在任何变通的方法?

ps.在手动将gif转换为mp4的情况下,保存质量和大小,然后提交给机器人--它的工作原理很好,没有任何额外的压缩等,但它是不可接受的要求使用做它之前使用机器人。

更新 。

为了重现 (你需要你的botbot_token,并且,能够用json接收webhook) 。

1) 发送这个gif (https:/c2n.me47Y3H37.gif)通过windows 10 telegram客户端(v2.1.10)发送给机器人。使用 "无压缩发送"。Gif大小:600x473,3.35MB。

2)机器人收到和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) 从这个webhook中获取File_id : CgACAgIAAxkBAAMVXuNrdjE0EKxTMl27JMFojZB45t8AAisIAALWfhhLRawIfW4M0zoaBA,并试图通过调用GET " "在api中使用它。https:/api.telegram.orgbot。{your_bot_token}getFile?file_id=CgACAgIAAxkBAAMVXuNrdjE0EKxTMl27JMFojZB45t8AAisIAALWfhhLRawIfW4M0zoaBA",你就会收到.NET文件。

{
  "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.orgfilebot。{your_bot_token}animationsfile_12.mp4",然后...得到这个mp4文件。https:/c2n.me47Y4oAv.mp4。 损失质量、重量和尺寸 (320x252)

但当你试图从Telegram客户端下载它时--通过点击 "另存为"--工作正常,mp4有适当的大小重量。所以似乎是api的错误...

update#2 : 尝试通过TFS telegram支持提交它,但也不能用我的电话号码登录... (https:/c2n.me47Yqswl.png). @pavel_durov, 能否请你把它全部修复:)

telegram telegram-bot telegram-webhook telegram-api
1个回答
3
投票

看来目前唯一的解决方法是将gif转换成mp4(是啊,这样的挫折性体验),直到 问题 是固定的。

© www.soinside.com 2019 - 2024. All rights reserved.