使用 sendMediaGroup 进行 Telegram 限制

标签 telegram telegram-bot

sendMediaGroup 方法允许在单个相册中发送多个图像或视频。
Telegram 每秒最多可发送 30 条消息。
在 sendMediaGroup 的描述中写道,它返回一个已发送消息的数组。是不是每一个都被算在了极限之内?

最佳答案

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

{
'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 个或更多媒体),该方法将返回错误
telegram.error.BadRequest: Too much messages to send as an album
每条消息都计入 Telegram 速率限制(每秒 30 条消息):您最多可以发送 3 条消息,每条消息包含 10 个媒体(总共 30 个),但不能在同一事务中添加任何其他内容(甚至不是简单的文本消息)。
使用 Python Telegram BOT,在收到错误 (telegram.error.TimedOut: Timed out) 后,最终仍会处理第 31 条消息,但这可能是框架处理 Telegram 返回的错误的方式。

关于使用 sendMediaGroup 进行 Telegram 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64192240/

相关文章:

api - Telegram Bot API : getChatMember throws USER_ID_INVALID for valid user

asp.net-core - .NET Core Identity Framework 和 Telegram Login Widget(无数据库)

Telegram 创建民意调查并读取民意调查结果

Telegram 群组禁止/启动/踢用户

telegram - Telegram Bot 是否可以从 channel 获取消息?

telegram - Telegram user_id 的长度可以是多少?

Telegram,获取现有贴纸的 file_id

javascript - 如果用户同时发送多张照片,如何让机器人响应一次?

c# - 将消息发送到 bot api 时连接意外关闭错误

java - 如何使用 ex3ndr 在 Telegram 中发送带有标题的照片?