Facebook PHP SDK范围请求

时间:2014-09-02 08:22:51

标签: php facebook facebook-graph-api

我想在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,它运行正常。如何使用它来请求更多权限?

1 个答案:

答案 0 :(得分:0)

  1. getLoginUrl()方法接受数字数组权限。您正在使用关联数组。正确用法如下所示:$params = array('email','public_profile');

  2. 正如@WizKid指出的那样,$params语句的第一个块中正在设置if ( isset( $session ) )数组,因此它永远不会传递给getLoginUrl()

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