Telegram Bot API:如何发送带超1024字符说明的图片/相册?
限制绕过原理
官方文档规定的sendMediaGroup单媒体对象caption解析后字符限制(0-1024)仅针对单条媒体,而非整个相册的总文本长度。通过将超长文本拆分到多个媒体对象的caption中,搭配无视觉干扰的空白媒体(如1x1透明PNG),可实现视觉上的单条超长说明效果。
操作步骤
- 文本拆分:将超过1024字符的内容分割为若干片段,确保每个片段解析后字符数≤1024。
- 媒体组构造:
- 主媒体(如菜单封面)设置第一个文本片段为
caption。 - 添加若干空白透明媒体,依次将剩余文本片段设为对应媒体的
caption。 - 统一所有媒体的
parse_mode(如MarkdownV2)。
- 主媒体(如菜单封面)设置第一个文本片段为
- 接口调用:将所有媒体对象传入
sendMediaGroup接口发送,Telegram会合并为一个相册,所有caption会连续展示在相册下方。
示例(以提供的餐厅新年菜单为例)
拆分后的文本片段
片段1(主图Caption)
“СКВОРЕЦ”餐厅新年菜单
十二月的雨、堵车、公司年会、给亲友送礼——这些固然不错,但你试过从十二月中旬就开始用起泡酒搭配鱼子酱吗?“СКВОРЕЦ”邀请你体面地辞旧迎新,我们准备了包含所有新年元素的特别菜单:鱼子酱、橘子、奥利维耶沙拉、圣诞树和超大杯起泡酒!
鱼子酱黄油面包
香煎奶油布里欧修、打发黄油、黑红鱼子酱、斯特拉切拉奶酪、香菜黑麦碎、洋葱丁
990卢布奥利维耶沙拉
经典沙拉的独创演绎:搭配芒果块、红鱼子酱、帕尔马干酪奶油酱和低盐三文鱼
990卢布
片段2(空白图Caption)
虾仁甜甜圈
轻盈的甜甜圈内馅是虾仁三文鱼配桃子蛋黄酱,点缀红鱼子酱
950卢布VERBENA GLOW鸡尾酒
辛辣生姜、花果香马鞭草和芳香香草伏特加打造出绝佳节日风味,唐培里侬气泡增添柔和感,营造出如云朵般的轻盈口感。
750卢布蜂蜜橘子鸡尾酒
浓郁新年风味!以橘子和朗姆酒为基底,添加接骨木利口酒,最后以香蜜收尾
800卢布
片段3(空白图Caption)
SNOWY PINES鸡尾酒
带有黑醋栗和天然松针香气的清爽鸡尾酒,以橘子金酒为基底,搭配增添轻盈感的汤力水气泡。
850卢布香料拿铁
添加自制唐培里侬糖浆、柔和香料奶油泡沫和我们亲手绘制的姜饼的拿铁
550卢布通过Telegram机器人预订座位,邀请亲友,在小布龙纳亚街的“СКВОРЕЦ”交换礼物!我们已为你备好氛围!
注意事项
- 空白媒体建议使用1x1像素透明PNG,避免破坏视觉体验。
- 部分客户端会显示相册媒体数量,但不影响文本连续展示。
- 每个片段需严格控制解析后字符数≤1024,否则仍会触发
Bad Request: message is too long错误。
内容的提问来源于stack exchange,提问作者Slow Storm

