Facebook Graph API 无法获取用户好友的位置


Facebook Graph API unable to get User friends Location

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

{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,它工作正常。

我已经搜索了很多地方并尝试了各种组合的代码,但没有奏效。谁能告诉我我在这段代码中错在哪里?

将非常感谢

编写所有必要的权限都很好:

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

。但是为了什么呢?

访问令牌是根据您请求的权限生成的。生成与图形查询对应的graph.facebook.com URL 时,实际上不会传递任何访问令牌。因此,无论您之前对它们做什么,您的权限都是未使用的。

要做:

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

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

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

  $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;
}