使用Facebook API创建含视频和图片的非广告轮播帖时视频无法上传的解决办法
Facebook API 非广告轮播帖上传视频解决方案
核心注意:非广告轮播无法直接传入视频URL,必须先将视频上传至页面媒体库再关联使用
先确认视频合规性
视频必须满足Facebook的硬性要求:格式为MP4/MOV,分辨率≥720p,文件大小≤4GB,时长在1秒到4小时之间;编码推荐用H.264视频+AAC音频(这是兼容性最高的组合,避免用冷门编码导致失败)。同时确保你的API令牌拥有pages_manage_posts和pages_read_engagement权限,且令牌未过期。分步操作流程
- 单独上传视频到页面媒体库
调用/{page-id}/videos端点发送POST请求,传入视频的公开可访问URL或直接上传本地文件,拿到返回的video_id并保存。示例curl命令:curl -X POST "https://graph.facebook.com/v18.0/[你的页面ID]/videos" \ -H "Authorization: Bearer [你的有效API令牌]" \ -F "file_url=https://你的视频公开地址.mp4" \ -F "description=轮播视频卡片说明" - 创建混合媒体轮播帖
调用/{page-id}/feed端点时,在child_attachments数组中,视频项使用media_fbid字段填入刚才获取的video_id,图片项可正常使用image_url或提前上传图片得到的media_fbid。示例curl命令:curl -X POST "https://graph.facebook.com/v18.0/[你的页面ID]/feed" \ -H "Authorization: Bearer [你的有效API令牌]" \ -F "message=我的混合媒体轮播帖" \ -F "child_attachments=[ { \"media_fbid\": \"[刚才拿到的video_id]\", \"link\": \"https://视频跳转链接.com\", \"description\": \"这是视频卡片\" }, { \"image_url\": \"https://图片公开地址.jpg\", \"link\": \"https://图片跳转链接.com\", \"description\": \"这是图片卡片\" } ]"
- 单独上传视频到页面媒体库
常见踩坑排查
- 不要在
child_attachments里直接使用video_url字段,该字段仅支持广告轮播,非广告轮播必须先上传视频获取video_id再关联 - 视频的公开URL必须无防盗链、无登录限制,否则Facebook无法拉取视频文件
- 如果上传视频后返回状态为
pending,需等待几分钟再获取video_id,Facebook需要时间完成视频转码
- 不要在
内容的提问来源于stack exchange,提问作者Chương Hà Văn
相关产品推荐
相关产品推荐

