Facebook获取用户组(遇到问题)

时间:2012-05-09 05:43:28

标签: facebook token

我在这里搜索了高低不同的答案但是却找不到任何东西。如果可以,请回答,感谢。

设置:

我通过使用其中一个示例作为基础学习如何使用PHP Facebook API SDK。我是使用API​​的新手,所以我有点困惑,并且在尝试列出用户组时遇到了问题。

问题:

我已经制作了应用程序。我有适当的权限和扩展权限。我能够获得用户名和基本信息。

我认为我的问题是访问获取用户组所需的扩展权限所需的访问令牌。我不确定我是否正确地将它发送到API。

这就是我所拥有的:

<?
    if($user_id) {

      // We have a user ID, so probably a logged in user.
      // If not, we'll get an exception, which we handle below.
      try {
        $access_token = $facebook->getAccessToken();
        $user_profile = $facebook->api('/me','GET');
        $user_groups = $facebook->api('/me/groups','GET', array( 'access_token=' => $access_token ));

        echo "Name: " . $user_profile['name'];
        echo "<br />";
        echo "Groups: " . $user_groups['name'];

      } catch(FacebookApiException $e) {
        // If the user is logged out, you can have a 
        // user ID even though the access token is invalid.
        // In this case, we'll get an exception, so we'll
        // just ask the user to login again here.
        $args['scope'] = 'user_groups,user_likes';
        $login_url = $facebook->getLoginUrl($args);
        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
      $args['scope'] = 'user_likes,user_groups';
      $login_url = $facebook->getLoginUrl($args);
      echo 'Please <a href="' . $login_url . '">login.</a>';

    }

  ?>

感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

我不太确定,但这里有几点:

  1. 使用facebook sdk时没有理由手动添加访问令牌,这些将为您添加访问令牌。应该是:

    $ user_groups = $ facebook-&gt; api('/ me / groups','GET');

  2. “/ me / groups”的json编码结果的格式与“/ me”的格式完全不同。 如果“/ me”的结果只是一组键/值数据,则“/ me / groups”的结果将包含在“data”参数中,该参数是一个对象数组。 正如它在User Object documentation中所述(在 groups 连接下):

      

    包含版本的对象数组(old-0或new Group-1),   name,id,administrator(如果用户是该组的管理员)   和bookmark_order(在组书签列表中的什么位置   主页,该组显示给用户)。

  3. 如果对facebook如何回复不同查询有疑问,请使用Graph Explorer tool,您可以使用result for /me测试不同的查询,并查看Facebook返回的回复。 例如result for /me/groups和{{3}}