【问题标题】:Facebook PHP SDK Scope RequestFacebook PHP SDK 范围请求
【发布时间】:2014-09-02 21:21:07
【问题描述】:

我正在尝试在 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,它就可以正常工作。如何使用它来请求更多权限?

【问题讨论】:

  • basic_info 权限在 API v2 中不再存在,已替换为 public_profile
  • 当你调用 getLoginURL $params 时永远不会设置。

标签: php facebook facebook-graph-api


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

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

  3. 正如@CBroe 所指出的,basic_info 在 Graph 2.x 中已被弃用,现在分为 public_profileuser_friends

【讨论】:

    猜你喜欢
    • 2015-04-14
    • 2016-04-30
    • 2016-08-26
    • 1970-01-01
    • 2015-01-19
    • 2023-03-26
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多