facebookphp-skd-api设置访问用户数据的适当权限


facebook php skd api setting proper permissions to access user data

我正在尝试使用php访问和收集有关-的基本信息

用户名、性别、生日、年龄范围等

但由于某种原因,我只能得到工作的名字和性别,我得到了一个带有CCD_ 2和CCD_ 3的CCD_。

有人能帮我弄清楚吗?我是Facebook Graph API的新手,正在尝试修改他们为日志记录提供的给定代码。我想我还不需要访问令牌,因为我正试图在他们登录网站时获得初始权限。

<?php
include('src'facebook.php');
//$scope = 'username,age_range,birthday,gender';
$config = array(
      'appId'              => 'XXXXXXXXXXXXXXXX',
      'secret'             => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
      'fileUpload'         => false, 
      'allowSignedRequest' => false 
    );
  $facebook = new Facebook($config);
  $user_id = $facebook->getUser();
?>
<html>
  <head></head>
  <body>
  <?php
    if($user_id) {
      try {
            //$user_profile = $facebook->api('/me','GET');
            $user_profile = $facebook->api('/me','GET', array('scope' => 'user_birthday,gender,age_range,name,likes'));
            echo "Name: " .     $user_profile['name'];
            echo " Gender: " . $user_profile['gender'];
            echo " DOB: " .    $user_profile['birthday'];
            echo " Age_Range: " .    $user_profile['age_range'];
      } catch(FacebookApiException $e) {
            $login_url = $facebook->getLoginUrl(); 
            echo 'Please <a href="' . $login_url . '">login.</a>';
            error_log($e->getType());
            error_log($e->getMessage());
      }   
    } else {
      // No user, print a link for the user to login
      $login_url = $facebook->getLoginUrl();
      echo 'Please <a href="' . $login_url . '">login.</a>';
    }
  ?>
  </body>
</html>

还有人能解释一下如何获得用户点赞吗?我知道我必须使用Facebook->api(me/like)指定用户权限,但我该如何访问数组?谢谢你的帮助!

请仅遵循官方文档以避免此类错误-

  1. 您将权限范围添加到错误的位置。

  2. 您使用了错误的权限:gender,age_range,name,likes-这些权限无效!

    您需要的权限是:user_likes(用于点赞)、user_birthday(用于生日);其余仅为基本(默认)权限的一部分!

    年龄范围字段也包含在公共配置文件中,适用于安装您的应用程序的任何人。

在使用登录代码:getLoginUrl()时,必须添加scope参数。

$params = array(
  'scope' => 'user_likes, user_birthday'
);
$loginUrl = $facebook->getLoginUrl($params);

用户成功授予权限后,您将获得所需的东西!