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

使用aiogram3通过Telegram企业模式发布Story图片上传失败

解决aiogram3企业模式发布Story的文件上传错误

问题场景

基于aiogram3开发Telegram企业机器人,尝试发布Story时触发错误:

aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: story photo must be uploaded as a file

使用的图片分辨率为1080x1920,符合Telegram官方要求。先后尝试两种传参方式均未解决:

  • 使用attach://a.jpg关联本地文件
  • 直接将FSInputFile传入InputStoryContentPhoto

解决方案

方案1:直接传入文件对象

无需使用attach语法,直接将FSInputFile实例传给InputStoryContentPhoto的photo参数:

photo = FSInputFile("./a.jpg", filename="a.jpg")
content = InputStoryContentPhoto(photo=photo)
await callback.bot.post_story(
    business_connection_id=user["business_connection_id"],
    content=content,
    active_period=86400,
    post_to_chat_page=True
)

方案2:使用attach语法并指定文件附件

若坚持使用attach关联,需在post_story方法中额外传入files参数,将文件对象与关联名绑定:

photo = FSInputFile("./a.jpg", filename="a.jpg")
content = InputStoryContentPhoto(photo="attach://a.jpg")
await callback.bot.post_story(
    business_connection_id=user["business_connection_id"],
    content=content,
    active_period=86400,
    post_to_chat_page=True,
    files={"a.jpg": photo}
)

说明

两种方案核心都是确保Telegram服务器能正确识别并接收本地文件。方案1更简洁,推荐优先使用;方案2适合需同时上传多个文件的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:25:20