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

使用Python调用Facebook Graph API上传视频至页面失败,求解决方案

解决Facebook页面视频上传的OAuthException错误

一、修正请求代码的核心问题

你的代码存在两个关键错误,直接导致服务器无法识别访问令牌:

  • 错误混用参数与请求头:设置了multipart/form-data头却用json=payload传递数据,requests会自动将请求头覆盖为application/json,两者冲突后服务器解析不到access_token。
  • 视频参数传值错误:source需要传递文件对象,而非文件路径字符串。

修正后的代码:

import requests

PAGE_ACCESS_TOKEN = '...'
pageId = '你的页面ID'
location_of_video = 'Pokemon.mp4'

# 用data传递令牌,files传递视频文件
data = {'access_token': PAGE_ACCESS_TOKEN}
# 用with语句自动管理文件资源更安全
with open(location_of_video, 'rb') as video_file:
    files = {'source': video_file}
    url = f'https://graph-video.facebook.com/v14.0/{pageId}/videos'
    r = requests.post(url, data=data, files=files)
    print(r.text)

二、验证访问令牌的有效性与权限

错误提示An access token is required也可能是令牌本身的问题,按以下步骤排查:

  1. 确认令牌类型:确保使用的是页面访问令牌(Page Access Token),而非用户访问令牌。需在Graph API Explorer中选择目标页面后生成对应令牌。
  2. 检查必要权限:页面令牌必须包含以下权限才能上传视频:
    • pages_show_list
    • pages_manage_posts
    • pages_read_engagement
      可在Facebook开发者工具的Graph API Explorer中,通过debug_token端点查看令牌的权限列表是否齐全。
  3. 验证令牌有效性:调用GET /debug_token?input_token=你的令牌&access_token=你的应用令牌接口,检查令牌是否过期、是否与目标页面正确绑定。

三、额外注意事项

  • API版本:v14.0是较旧版本,建议升级到最新稳定版(如v18.0),避免版本兼容性问题。
  • 视频规格:确保视频符合Facebook要求(如MP4格式,H.264编码、AAC音频),且文件大小在平台限制范围内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:54:35