使用 facebook javascript sdk 获取用户的位置

Get user's location using facebook javascript sdk

我正在使用下面的代码来获取用户的位置,但是它没有 return 位置

FB.api('/me?fields=picture,location', function(res) {
    console.log(res); // no location
});

知道我做错了什么以及如何获取用户位置吗?

更新

Graph API Explorer 中,它确实提供了用户位置,但在上面的代码中却没有。

更新 2

知道如何使用 Facebook JavaScript SDK 获取用户的位置吗?

如果它在 API Explorer 中有效,但在您的 App 中无效,则只有一个原因:您未授权 user_location 权限。在 API 资源管理器中,您可以 select 在弹出窗口中显示它。在您的代码中,您必须使用 FB.login:

专门要求它
FB.login(function(response) {
    console.log(response);
    if (response.authResponse) {
        //user just authorized your app
        FB.api('/me?fields=picture,location', function(res) {
            console.log(res);
        });
    }
}, {scope: 'user_location', return_scopes: true});

更大的例子:http://www.devils-heaven.com/facebook-javascript-sdk-login/

确保您以在应用程序中具有角色(管理员、开发人员、测试人员)的用户身份尝试此操作,否则它甚至不会请求权限。如果你想去public,你需要先完成审核过程:https://developers.facebook.com/docs/facebook-login/review

我在第一个回调的开头添加了 return_scopes 参数和 console.log,在 chrome 开发工具中调试响应并确保它包含 user_location 许可。

顺便说一句,您也会在响应中获得一个访问令牌,使用调试器检查授权权限:https://developers.facebook.com/tools/debug/accesstoken/