无法使用Facebook api 2.0获取新的应用范围用户id

无法使用Facebook api 2.0获取新的应用范围用户id,facebook,facebook-graph-api,facebook-javascript-sdk,facebook-graph-api-v2.0,facebook-graph-api-v2.2,Facebook,Facebook Graph Api,Facebook Javascript Sdk,Facebook Graph Api V2.0,Facebook Graph Api V2.2,最近,我将我的旧v1.0 Facebook web应用程序更新为api v2.0, 我根据Facebook的升级指南更改了SDK调用,然后我创建了一个新的Facebook帐户登录到我的应用程序,当我调用我/它仍然返回全局用户id而不是新的应用程序范围id 我做错了什么? 我也在iphonesdk上试用过,它确实返回了新的应用程序范围id 非常感谢 下面是我如何调用api的: <script> function statusChangeCallback(response) {

最近,我将我的旧v1.0 Facebook web应用程序更新为api v2.0, 我根据Facebook的升级指南更改了SDK调用,然后我创建了一个新的Facebook帐户登录到我的应用程序,当我调用我/它仍然返回全局用户id而不是新的应用程序范围id

我做错了什么? 我也在iphonesdk上试用过,它确实返回了新的应用程序范围id

非常感谢

下面是我如何调用api的:

<script>

function statusChangeCallback(response) {
    console.log('statusChangeCallback');
    console.log(response);
    if (response.status === 'connected') {
        // Logged into your app and Facebook.
        testAPI();
    } else if (response.status === 'not_authorized') {
        document.getElementById('status').innerHTML = 'Please log ' +
    'into this app.';
    } else {

        document.getElementById('status').innerHTML = 'Please log ' +
    'into Facebook.';
    }
}

function checkLoginState() {
    FB.getLoginStatus(function (response) {
        statusChangeCallback(response);
    });
}

window.fbAsyncInit = function () {
    FB.init({
        appId: 'MY_APPID',
        cookie: true,  // enable cookies to allow the server to access 
        // the session
        xfbml: true,  // parse social plugins on this page
        version: 'v2.0' // use version 2.0
    });

    FB.getLoginStatus(function (response) {
        statusChangeCallback(response);
    });

};

(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 testAPI() {
    FB.api('v2.0/me', function (response) {
        log(response);
    });
}

已使用v1.0授权您的应用程序的用户将保留相同的ID。否则将无法匹配现有用户


如果您仍然使用另一个从未授权过该应用的帐户获取全局ID,则您的应用很可能不会更新到v2.0。

您应该始终为授权您的应用的用户获取相同的标识符-将您的身份验证和API调用更新到v2.0后,旧用户的ID不应更改,只有新用户才应获得“应用范围”IDs@Igy我知道这一点。这就是为什么我创建了一个全新的帐户,在我更改api调用之前,他从未授权过该应用程序。但是它仍然返回了全局id。我已经用我的代码编辑了帖子,请告诉我是否调用正确。谢谢在我看来是正确的,尽管我认为如果您使用v2.0初始化JSSDK,您不需要api调用中的版本标记。如果您仍然获得新用户的全局ID,我会提交一个bug。