基于aiogram实现Telegram转发GIF自动回复的Python机器人开发问询
解决aiogram处理转发GIF消息的问题
Telegram里的GIF文件在aiogram框架中对应的content_type是animation,并不是你想的gif——因为Telegram会把GIF归类为动画媒体类型。要同时满足「接收GIF」和「消息是转发而来」的要求,直接调整消息处理器的参数就行。
修改后的代码示例
from aiogram import Bot, Dispatcher, executor, types @dp.message_handler(content_types=['animation'], is_forwarded=True, user_id=userlist) async def check_forwarded_gif(message: types.Message): # 可选:严格验证是否为GIF格式(避免匹配到其他动画类型) if message.animation.mime_type == 'image/gif': await message.reply("你是否将此内容分享或转发给了其他人?\n\n请选择你的回复。", reply_markup=keyboard_inline2)
要点说明
content_types=['animation']:这是aiogram中匹配GIF的正确参数,Telegram的GIF消息都会被识别为animation类型is_forwarded=True:保留这个条件确保只处理转发来的消息- 额外的mime_type判断:如果需要严格只处理GIF(排除其他动画格式),可以加上
message.animation.mime_type == 'image/gif'的验证
内容的提问来源于stack exchange,提问作者Riley Zhuo
相关产品推荐
相关产品推荐

