Facebook的PHP SDK范围要求

Facebook的PHP SDK范围要求

问题描述:

我想要在PHP中申请我的Facebook网站应用程序的基本权限。我有以下代码:Facebook的PHP SDK范围要求

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链接,但是当我点击它,它重定向到一个网站的网址和失败,一个500。如果我从getLoginURL删除$params,它的功能正常。我如何使用它来请求更多的权限?

+0

'basic_info'权限在API v2中不再存在,它已被替换为'public_profile'。 – CBroe 2014-09-02 09:54:30

+0

而当你调用getLoginURL $ params从未设置。 – WizKid 2014-09-02 10:02:15

  1. getLoginUrl()方法接受一个数字数组的权限。您正在使用关联数组。正确的用法是这样的:$params = array('email','public_profile');

  2. 由于@WizKid指出的那样,$params阵列被你if (isset($session))语句的第一块组所以它永远不会被传递到getLoginUrl()

  3. 正如@CBroe指出的,basic_info在图2.x中被删除,现在被拆分为public_profileuser_friends