使用Facebook Javascript SDK访问用户位置数据

使用Facebook Javascript SDK访问用户位置数据,javascript,facebook,facebook-graph-api,Javascript,Facebook,Facebook Graph Api,我使用Facebook Javascript SDK v2.5和Facebook graph API访问用户位置数据(更具体地说是街道、邮编和城市),代码如下: window.fbAsyncInit = function() { FB.init({ appId : 'my_app_ID', xfbml : true, version : 'v2.5' }); }; (function(d, s, id){ var js,

我使用Facebook Javascript SDK v2.5和Facebook graph API访问用户位置数据(更具体地说是街道、邮编和城市),代码如下:

window.fbAsyncInit = function() {
  FB.init({
      appId      : 'my_app_ID',
      xfbml      : true,
      version    : 'v2.5'
  });
};

(function(d, s, id){
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

function logIntoFB(){
    FB.login(function(){
            testAPI();
    }, {scope: 'public_profile,email,user_location'});

    function testAPI() { 
        FB.api('/me?fields=name,first_name,last_name,location',function(response) { 
           console.log(response); 
        });
    }
}
当用户登录并将响应记录到控制台时,如下所示:

Object {name: "MyFirstName MyLastName", first_name: "MyFirstName", last_name: "MyLastName"
, id: "01010101010101"}
没有location对象,因此我无法获取location.city等。特定facebook帐户的隐私设置没有更改,并且提供了地址,因此应该可以检索信息。我已经检查了Facebook SDK文档和StackOverflow上的各种问题,但似乎没有任何效果。其中一些是: ”“还有 “”


任何帮助都将不胜感激。

首先确保您在登录期间请求此权限(您可以在应用程序的“登录”对话框中查看权限列表)

接下来,您可以获取访问令牌并使用查看它是否包含
user\u位置
权限。如果缺少此权限,则可能意味着:

  • 用户在登录期间拒绝了此权限
  • 您的应用尚未被批准使用此权限,您正在与在您的应用中没有角色的用户测试此权限。未经批准的权限仅适用于应用程序的管理员/开发人员