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

Facebook Graph API请求返回400错误,调用private_replies返回2500 OAuthException

问题根因
  • 核心错误是access_token传参方式错误:你把token参数放到了requests库的files参数中传递,files是用于上传文件的表单字段,Facebook的接口无法从该参数中读取到token,相当于请求未携带有效访问凭证,直接触发2500 OAuthException报错。
  • 代码存在语法疏漏:你定义params字典时缺少闭合的花括号},如果实际运行的代码未修正该问题,也会先触发本地语法错误。
  • 额外可能的诱因:你使用的Page_Token本身无效,包括过期、未申请对应接口权限、不是页面专属的访问令牌等。
修复方案
  1. 修正参数传递逻辑,将access_token放到查询参数或者授权头中传递,参考修正后的private_reply函数代码:
def private_reply(comment_ids):
    url = "https://graph.facebook.com/v12.0/me/messages"
    # 把access_token放到查询参数里
    params = {
        "access_token": Page_Token,
        "recipient": {
            "comment_id": comment_ids
        },
        "message": {
            "text": "Testing Private_Replies"
        }
    }
    request = requests.post(url=url, json=params)
    # 可以打印返回内容方便排错
    print(request.status_code, request.json())
  1. 检查Page_Token的有效性:
  • 确认令牌是对应目标Facebook页面的页面访问令牌,不是个人用户令牌
  • 确认令牌已授予pages_manage_metadata、pages_messaging权限
  • 确认令牌未过期,可去Facebook开发者后台的工具中校验令牌有效性
  1. 确认目标帖子属于当前令牌绑定的页面,private_replies接口仅允许回复自身页面发布的帖子下的评论。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:36:02