Facebook Graph API无法获得用户朋友的位置

时间:2013-10-29 15:56:29

标签: php facebook facebook-graph-api facebook-php-sdk facebook-apps

我正在尝试检索&打印用户的朋友位置。我使用以下代码:

{scope:'email,friends_location, user_location,publish_stream'});

results += '<div><img src="https://graph.facebook.com/' + friend_data[i].id +     '/picture">' + friend_data[i].name + friend_data[i].location + '</div>';

当我打印friend_data[i].location的值时,它打印未定义,当我将此变量更改为friend_data[i].location.name时,它不起作用,并且没有打印出任何内容。在用户自己的位置我正在做resource.location.name,它工作正常。

我搜索了很多地方并尝试了各种组合的代码,但没有用。 任何人都可以在这段代码中给我错误的地方吗?

非常感谢

2 个答案:

答案 0 :(得分:2)

只需编写所有必要的权限即可:

{scope:'email,friends_location, user_location,publish_stream'});

......但是为了什么?

根据您询问的权限生成访问令牌。在构建与您的图表查询相对应的graph.facebook.com网址时,您实际上并未传递任何访问令牌。因此,您的权限未被使用,无论您之前使用过它们。

要做:

  1. 列出权限(已完成),
  2. 从权限(已完成?)
  3. 生成访问令牌
  4. 将访问令牌传递给您的图表调用。

答案 1 :(得分:1)

在搜索了其他几个地方之后,我正在回答我自己的问题,将来可能对某人有所帮助。实际上我在我的问题中设定了正确的范围。可能我没有正确打印输出。但是下面的代码肯定有用。

注意:以下查询中的位置是指当前位置。

  $userFriend_profile = $facebook->api('/me/friends?fields=name,location&limit=20');


  $total = count($userFriend_profile['data']);
    for ($i = 0; $i < $total;)
    {
      if(isset($userFriend_profile['data'][$i]['location']['name']))
    {
    $city_Value = explode(',',trim($userFriend_profile['data'][$i]['location']['name']));

  }
    $i = $i + 1;
}