我最近开始使用Facebook登录我的网站时遇到问题。我一直看到这条错误消息:
Facebook.FacebookOAuthException:(OAuthException)验证验证码时出错。
网站和软件发生了重大变化;在我深入研究这些变化之前,我想消除一些简单的常见原因。
这可能是防火墙问题(该网站位于防火墙后面,无法从我们的网络外部访问)?此错误消息的最常见原因是什么?
答案 0 :(得分:1)
确保您的redirectUri参数与您在https://www.facebook.com/dialog/oauth电话上使用的redirecturi相同。
例如,给定初始身份验证请求
using Facebook;
public ActionResult fbLogOn( string token, string returnUrl )
{
var oAuthClient = new FacebookOAuthClient( FacebookApplication.Current );
oAuthClient.RedirectUri =
new Uri( "http://" + "localhost:3434" + "/Home/fbOAuth" );
<... etc ...>
确保facebook响应的处理程序将重定向URI设置为完全相同的URI:
using Facebook;
public ActionResult fbOAuth(string code, string state )
{
FacebookOAuthResult oauthResult;
if (FacebookOAuthResult.TryParse( Request.Url, out oauthResult ))
{
string token = HttpUtility.UrlDecode( state );
if (oauthResult.IsSuccess)
{
var oAuthClient = new FacebookOAuthClient( FacebookApplication.Current );
oAuthClient.RedirectUri =
new Uri( "http://" + "localhost:3434" + "/Home/fbOAuth" );
dynamic tokenResult = oAuthClient.ExchangeCodeForAccessToken( code );
string accessToken = tokenResult.access_token;
<... etc ...>