Facebook Canvas登录助手(v5.0)用户尚未授权您的应用程序

问题描述 投票:3回答:1

这是我最终在PHP部分中使用的内容:

require $_SERVER['DOCUMENT_ROOT'] . "/resource/lib/facebook-php-sdk-v4-5.0.0/autoload.php";

$fb = new Facebook\Facebook([
'app_id' => '{app ID}',
'app_secret' => '{app secret}}',
'default_graph_version' => 'v2.2',
]);

$helper = $fb->getCanvasHelper();

try {
$access_token = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}

// Logged in

让用户获得模式窗口以允许各种权限授权的一种方法是在JS中调用以下函数:

facebook_authorize = function() {
FB.login(function(response) {
if (response.authResponse) {    
//user has authorized the app     
//redirect or do AJAX call

} 

});    

} else {
//user cancelled login or did not fully authorize
}

}, {scope: 'email, user_hometown, user_location, user_likes'});
return false;    
};

window.fbAsyncInit = function() {
FB.init({
appId: '{app ID}',
cookie: true, // This is important, it's not enabled by default
status: true,    
version: 'v2.2'
});
};

(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

PHP SDK getJavaScriptHelper();方法以相同的方式工作,但我遇到的问题是,在身份验证后刷新页面会导致以下错误:

Graph returned an error: This authorization code has been used.
oauth-2.0 facebook-javascript-sdk facebook-php-sdk
1个回答
0
投票

我无法访问您发布的链接。

对于身份验证,您可以使用:https://developers.facebook.com/docs/php/howto/example_facebook_login

如果您的应用位于沙盒中,则必须将用户添加到应用,以便他们可以查看/授权。 developers.facebook.com/apps/[app_id]/roles/

如果你想使用对话框,你可以使用内置它的Facebook Javascript SDK。 https://developers.facebook.com/docs/javascript/examples#login

© www.soinside.com 2019 - 2024. All rights reserved.