facebook php api中的user_likes范围问题

时间:2015-06-16 13:50:11

标签: php facebook

这是我的范围:

$required_scope     = 'public_profile, publish_actions, email, read_stream, manage_pages, user_birthday, user_likes'; 

这是登录部分:

require_once __DIR__ . "/fb/autoload.php"; //include autoload from SDK folder

//import required class to the current scope
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRedirectLoginHelper;

FacebookSession::setDefaultApplication($app_id , $app_secret);
$helper = new FacebookRedirectLoginHelper($redirect_url);

$login_url = $helper->getLoginUrl( array( 'scope' => $required_scope ) );

这是我得到一些结果时的代码:

$user_profile = (new FacebookRequest($session, 'GET', '/me'))->execute()->getGraphObject(GraphUser::className());
echo "<pre>"; var_dump($user_profile); echo "</pre>";

我的代码运行正常。我收到有关我个人资料的信息。这是var_dump:

的结果
    ["favorite_athletes"]=>
        array(9) {
          [0]=>
          object(stdClass)#9 (2) {
            ["id"]=>
            string(15) "184161078291195"
            ["name"]=>
            string(15) "Adriana Nechita"
          }
          [1]=>
          object(stdClass)#10 (2) {
            ["id"]=>
            string(15) "745037222223542"
            ["name"]=>
            string(13) "Simona  Halep"
          }
          [2]=>
          object(stdClass)#11 (2) {
            ["id"]=>
            string(16) "1429782880606166"
            ["name"]=>
            string(18) "Iasmin Latovlevici"
          }
    ....... until 8
          [8] 
    }
    ["favorite_teams"]=>
    array(6) {
      [0]=>
      object(stdClass)#18 (2) {
        ["id"]=>
        string(15) "822633781141031"
        ["name"]=>
        string(18) "FC Bayern München"
      }
      [1]=>
      object(stdClass)#19 (2) {
        ["id"]=>
        string(15) "361595103896895"
        ["name"]=>
        string(16) "Football legends"
      }
      [2]=>
      object(stdClass)#20 (2) {
        ["id"]=>
        string(11) "86037497258"
        ["name"]=>
        string(21) "Chelsea Football Club"
      }
.......

我真的不明白为什么var_dump会向我展示我最喜欢的运动员和团队。我喜欢facebook上的很多东西。为什么它会告诉我其中的2个?另一个问题:其余的在哪里?我最喜欢的博客,新闻,品牌在哪里?

2 个答案:

答案 0 :(得分:1)

我在代码中的任何地方都没有看到它,所以我假设您没有使用正确的端点来获取喜欢的内容:

/me/likes

API参考:https://developers.facebook.com/docs/graph-api/reference/user/likes

如果所有相关内容都没有显示,您可能需要实现分页才能获得下一批:https://developers.facebook.com/docs/graph-api/using-graph-api/v2.3#paging

...因为Facebook限制结果数量,默认值为25.不确定为什么你得到24,也许你正在查看数组ID而不是数量(0-24> 25)。

您还可以增加限制:

/me/likes?limit=100

答案 1 :(得分:0)

如果这是您的帐户,请检查您有任何喜欢的博客,新闻,品牌,因为您应该在您的fb帐户中有一些东西,然后只会返回给您。 用于检查使用facebook图谱API。

https://developers.facebook.com/tools/explorer/145634995501895/