【问题标题】:Facebook Graph API unable to get User friends LocationFacebook Graph API 无法获取用户好友位置
【发布时间】:2013-11-08 21:43:39
【问题描述】:

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

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

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

非常感谢

【问题讨论】:

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


    【解决方案1】:

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

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

    ...但是为了什么?

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

    待办事项:

    1. 列出权限(完成),
    2. 根据权限生成访问令牌(完成了吗?),
    3. 将访问令牌传递给您的 Graph 调用。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-03-20
        • 2016-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多