无效的验证码格式。Facebook OAuth 错误。

7
我是一名Facebook应用开发的初学者。我遇到了身份验证问题,我正在尝试使用以下网址:https://graph.facebook.com/oauth/access_token?client_id=$client_id&client_secret=$client_secret&type=client_credentials&redirect_uri=http://www.wesbite.com/facebook/&scope=email,offline_access,但是我收到了这个错误消息:"Invalid verification code format." 我已经尝试解决了三个小时了,但没有结果。我试着在谷歌上搜索这个消息,但显然它不是那么受欢迎。请问你能帮忙吗?编辑:我使用了这个函数:
function get_contents($link)
{
if (function_exists('curl_init')) {
    $curl    = curl_init();
    $timeout = 0;
    curl_setopt($curl, CURLOPT_URL, $link);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
    $buffer = curl_exec($curl);
    curl_close($curl);
    return $buffer;
} elseif (function_exists('file_get_contents')) {
    $buffer = file_get_contents($link);
    return $buffer;
} elseif (function_exists('file')) {
    $buffer = implode('', @file($link));
    return $buffer;
} else {
    return 0;
}
}

然后我将url作为参数传递:

$url = "https://graph.facebook.com/oauth/access_token?client_id=$client_id&client_secret=$client_secret&type=client_credentials&redirect_uri=http://www.mywebsite.com/facebook/&scope=email,offline_access";

echo get_contents($url);

请注意,本文中的HTML标记应保留。

在调用echo get_contents($url)之前,将$url输出为echo $url可能会有帮助,以确保所有的变量都已经设置好。 - Andreas Wong
我已经这样做了,并且仔细检查了数值,它们全部都是正确的。 - Kalimah
1个回答

13

非常感谢。在你解释这个过程之前,我已经阅读了那个页面超过10次(我猜我读错了)。不过还有一个问题,我正在尝试使用header(location: xxxx)进行重定向,但是我得到的是Facebook按钮,而不是重定向。不过点击它会带我到正确的页面。我该如何解决这个问题? - Kalimah
有趣,听起来你正在使用Facebook JavaScript SDK(http://developers.facebook.com/docs/authentication/#single-sign-on-with-the-javascript-sdk)?如果是这样,只要正确包含了所需的文件(all.js)和脚本(例如FB.init),你的代码应该直接使用oAuth 2.0进行身份验证(即无需上述调用)。如上面链接的页面所示,您可以订阅“auth.login”事件,并在回调中重定向一旦用户已经通过身份验证。如果您没有使用JavaScript SDK,请尝试删除fb:login-button</fb:login-button>标签。 - Robarondaz
谢谢。我实际上正在使用PHP SDK。我没有在应用程序的任何部分中使用js。如果我像这样直接访问应用程序:www.mywebsite.com/folder(这是我保存应用程序文件的位置),我会得到正确的页面,即权限页面。 - Kalimah
好的。我使用这段代码解决了问题:$loginUrl = $facebook->getLoginUrl(array),然后将页面重定向到它。非常感谢Robarondaz提供的解决方案。非常感谢您的帖子。 - Kalimah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接