Facebook Graph API通过Code获取用户AccessToken遇服务暂不可用问题
问题描述
我正尝试通过Facebook Graph API,使用授权码(Code)获取用户Access Token。
调用的API请求地址:
https://graph.facebook.com/v17.0/oauth/access_token?client_id={APP_ID}&client_secret={APP_SECRET}&redirect_uri={REDIRECT_URI}&code={CODE}
授权码是通过引导用户访问https://www.facebook.com/v17.0/dialog/oauth获取的,这一步流程正常,但调用上述接口时始终返回如下错误响应:
"error" => [ "message" => "(#2) Service temporarily unavailable", "type" => "OAuthException", "is_transient" => 1, "code" => 2, "fbtrace_id" => {SOME_CODE}, ]
我已经尝试过以下操作,但均未解决问题:
- 延长API调用的间隔时间
- 确保
redirect_uri参数与授权请求中的值完全一致 - 将应用从测试模式切换为正式模式
可能的解决方向
- 检查权限审核状态:即使切换到Live模式,若应用申请的核心权限未通过Facebook审核,也可能触发这类服务不可用错误。到Facebook开发者后台查看应用的权限审核记录,确认所需权限已获批。
- 验证授权码有效性:授权码(code)有效期通常为10分钟,且只能使用一次。确保当前使用的code是最新获取且未被调用过的,避免因重复使用或过期导致失效。
- 切换API版本测试:尝试将API版本切换到相邻的稳定版(比如v16.0或v18.0),部分旧应用可能存在特定版本的适配问题。
- 排查IP限制:如果是服务器端发起请求,检查该IP是否被Facebook临时限制。可以尝试更换IP地址再发起请求测试。
- 确认Facebook服务状态:Facebook的OAuth服务偶尔会出现区域性故障,可查看官方系统状态页面确认是否存在对应服务的故障。
- 核对应用密钥信息:再次仔细核对
client_id和client_secret是否与开发者后台的应用信息完全匹配,避免因字符拼写、大小写错误导致验证失败。
内容的提问来源于stack exchange,提问作者Luka Zavrl
相关产品推荐
相关产品推荐

