我正在尝试为使用OAuth的用户获取身份验证令牌。
一切正常,当用户尝试使用HTTPS(即https://apps.facebook.com/APPNAME)尝试访问应用时,我会非常精彩地获取令牌。但是,如果用户来自HTTP(大多数用户都是),我在尝试获取时会从Facebook收到400错误:
{
"error": {
"message": "Error validating verification code.",
"type": "OAuthException"
}
}
为什么会这样?
答案 0 :(得分:2)
自Facebook开始要求在应用程序上使用SSL证书以来,我们遇到了类似的问题。
OAuth 2.0可与PHP SDK 3.1.1一起正常运行。如果您使用的是早期版本,请转到GIT HUB并升级。
但是,即使使用3.1.1,当Facebook用户未启用安全浏览时,已签名的请求会从http://返回NULL。
解决方案是1.使用javascript在脚本顶部添加重定向,或2.在某处添加(a href = https:// 您的应用网址)链接。
答案 1 :(得分:2)
我遇到了同样的问题,但我发现这是因为用户还没有确认电子邮件地址。因此,对于尚未确认其电子邮件地址的新用户,您将无法获得任何令牌。为了以防万一,我认为这对这个主题很有用。
答案 2 :(得分:1)
“验证验证码错误”的问题是redirect_uri
。
在用户身份验证请求(返回code
)和应用程序授权/身份验证之间应该是相同的。