1

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

{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.namethen 它不起作用并且没有打印出来。在用户自己的位置我正在做 resource.location.name 并且它工作正常。

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

将非常感谢

4

2 回答 2

2

只需编写所有必要的权限就很好了:

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

……但是为了什么?

访问令牌是根据您请求的权限生成的。在构建graph.facebook.com与您的 Graph 查询对应的 URL 时,您实际上并没有传递任何访问令牌。因此,无论您之前对它们做了什么,您的权限都未被使用。

去做:

  1. 列出权限(完成),
  2. 从权限生成访问令牌(完成?),
  3. 将访问令牌传递给您的 Graph 调用。
于 2013-10-29T16:46:51.597 回答
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;
}
于 2013-12-03T14:58:49.477 回答