使用Python调用Facebook Graph API获取数据时遇OAuthException错误求助
解决Facebook Graph API的OAuthException(代码2500)错误
嘿,我一眼就看到问题所在了,咱们一步步来拆解:
首先,这个OAuthException(代码2500)的核心意思是:Graph API没识别到有效的访问令牌,所以没法帮你查询当前用户的信息。具体到你的代码,有两个关键问题:
1. URL参数拼接错误(最直接的诱因)
你写的URL拼接代码里,access_token后面少了等于号(=)!
原代码里的这行:
me = 'https://graph.facebook.com/v2.9/me?access_token'+token
拼接后会变成:https://graph.facebook.com/v2.9/me?access_tokenV4NzPkk55gXZAPr4FFTwgJGyosZBafEujZCeyebq4UZANIac226ZBcxgC7zTD9f57
看到没?access_token和你的令牌直接连在一起了,API根本认不出这是一个合法的参数,自然判定你没提供有效令牌。
2. 令牌本身可能无效(次要但需注意)
就算补上等于号,你用的这个令牌也可能是无效的——比如它已经过期、没有足够的权限访问/me端点,或者只是一个测试用的假令牌。不过先解决第一个问题再验证这个。
修正后的代码
我帮你把代码改好了,用f-string拼接更清晰,也补上了关键的等于号:
import requests token = 'V4NzPkk55gXZAPr4FFTwgJGyosZBafEujZCeyebq4UZANIac226ZBcxgC7zTD9f57' # 用f-string保证参数格式正确 me = f'https://graph.facebook.com/v2.9/me?access_token={token}' me1 = requests.get(me) print(me1.text)
额外提醒
- 一定要确保你的令牌是通过Facebook官方的OAuth授权流程获取的,并且申请了访问用户基本信息的权限(比如
public_profile) - 你用的API版本是v2.9,这版本太老了,Facebook早就停止对旧版本的支持了,建议升级到最新的稳定版本,避免出现更多兼容性问题
- 绝对不要把真实的访问令牌硬编码在代码里,尤其是公开分享代码的时候,这会严重威胁你的账号安全!
内容的提问来源于stack exchange,提问作者Pradeep




