sendMediaGroup 的电报限制

Telegram limits with sendMediaGroup

sendMediaGroup 方法允许在一个相册中发送多个图像或视频。

Telegram 有每秒最多 30 条消息的限制。

在 sendMediaGroup 的描述中写到它 returns 一组已发送的消息。是不是每一个都算在限制之内?

send_media_group 最多可以发送 10 个媒体文件(参见 telegram.Bot.send_media_group):在这种情况下,方法 returns 成功发送的消息列表

{
'message_id': 187,
'date': 1602754918,
'chat': {
    'id': 931365322,
    'type': 'private',
    'username': 'xxx',
    'first_name': 'xxx',
    'last_name': 'xxx'
},
'photo': [{
        'file_id': 'AgACAgQAAxkDAAO7X4gZZmu7aFIc0DAD9Wrao8yPe88AAki0MRsITUBQoza6QlZh2tvhrMkiXQADAQADAgADbQADTtsGAAEbBA',
        'file_unique_id': 'AQAD4azJIl0AA07bBgAB',
        'width': 320,
        'height': 301,
        'file_size': 5295
    },...
],

如果超出限制(11 个或更多媒体),该方法将return 出错

telegram.error.BadRequest: Too much messages to send as an album

每条消息都在 Telegram 速率限制内计数(每秒 30 条消息):您最多可以发送 3 条消息,每条消息包含 10 个媒体(总共 30 条),但不能在同一事务中添加任何其他内容(甚至不是简单的短信)。

使用 Python Telegram BOT,在收到错误(telegram.error.TimedOut:超时)后,最终仍会处理第 31 条消息,但这可能是框架处理错误的方式 return由 Telegram 编辑。