我想在PHP中为我的facebook网站应用程序请求以上基本权限。我有以下代码:
FacebookSession::setDefaultApplication('xxxxxxx', 'xxxxxxxx');
$helper = new FacebookRedirectLoginHelper('http://localhost:54321/xxxx.php');
try {
$session = $helper->getSessionFromRedirect();
} catch( FacebookRequestException $ex ) {
} catch( Exception $ex ) {
}
if ( isset( $session ) ) {
$request = new FacebookRequest( $session, 'GET', '/me' );
$response = $request->execute();
$graphObject = $response->getGraphObject();
$params = array(
'scope' => 'basic_info'
);
echo print_r( $graphObject, 1 );
} else {
echo '<a href="' . $helper->getLoginUrl($params) . '">Login</a>';
}
这提供了一个URL链接,但是当我点击它时,它会重定向到一个facebook URL并失败一个500.如果我从getLoginURL中删除$params
,它运行正常。如何使用它来请求更多权限?
答案 0 :(得分:0)
getLoginUrl()
方法接受数字数组权限。您正在使用关联数组。正确用法如下所示:$params = array('email','public_profile');
正如@WizKid指出的那样,$params
语句的第一个块中正在设置if ( isset( $session ) )
数组,因此它永远不会传递给getLoginUrl()
。
正如@CBroe指出的那样,basic_info
在图2.x中被删除,现在被分为public_profile
和user_friends
。