You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制Telegram Bot用户单条消息仅发送一张图片?

控制Telegram Bot单条消息图片数量的实现方案

Telegram API确实没有提供直接限制用户单条消息发送图片数量的功能,无法阻止用户发送多图,但可以通过识别**媒体组(Media Group)**来判断用户的多图发送行为,并给出提示。

实现思路

当用户一次发送多张图片时,Telegram会将这些图片拆分为多条消息,但所有消息会共享同一个media_group_id字段;而单张图片的消息不会带有该字段。我们可以通过检测这个字段来识别多图发送行为,同时用缓存避免重复提示。

Python代码示例(基于python-telegram-bot库)

from telegram import Update
from telegram.ext import Updater, MessageHandler, Filters, CallbackContext

# 缓存已处理的媒体组ID,避免重复发送提示
processed_media_groups = set()

def handle_photo(update: Update, context: CallbackContext):
    msg = update.effective_message
    if msg.photo:
        media_group_id = msg.media_group_id
        # 检测到多图媒体组
        if media_group_id:
            if media_group_id not in processed_media_groups:
                processed_media_groups.add(media_group_id)
                update.message.reply_text("请仅发送单张图片,无法处理多张图片的请求哦~")
        # 单张图片,执行你的编辑逻辑
        else:
            update.message.reply_text("收到单张图片,正在处理...")

def main():
    # 替换为你的Bot Token
    updater = Updater("YOUR_BOT_TOKEN")
    dp = updater.dispatcher
    dp.add_handler(MessageHandler(Filters.photo, handle_photo))
    updater.start_polling()
    updater.idle()

if __name__ == "__main__":
    main()

补充说明

  1. 缓存processed_media_groups会持续占用内存,若Bot长期运行,建议定时清理过期的媒体组ID(比如用定时器每天清空一次,或使用cachetools等带过期时间的缓存工具)。
  2. 若使用Pyrogram库,逻辑完全一致,只需调整语法:
from pyrogram import Client, filters
from pyrogram.types import Message

processed_media_groups = set()

app = Client("my_bot", api_id=YOUR_API_ID, api_hash="YOUR_API_HASH", bot_token="YOUR_BOT_TOKEN")

@app.on_message(filters.photo)
async def handle_photo(client, message: Message):
    if message.media_group_id:
        if message.media_group_id not in processed_media_groups:
            processed_media_groups.add(message.media_group_id)
            await message.reply_text("请仅发送单张图片,无法处理多张图片的请求哦~")
    else:
        await message.reply_text("收到单张图片,正在处理...")

app.run()

内容的提问来源于stack exchange,提问作者Nad 11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:16:43