在一个facebook-App中为一个Facebook用户获取不同的用户ID?

时间:2014-09-30 13:21:29

标签: javascript facebook facebook-graph-api

我在用户内编写Facebook应用程序可以通过

邀请朋友
FB.ui({method: 'apprequests'}, function(response) {
    console.log(response);
});`

我获得的当前用户的ID

window.fbAsyncInit = function() {
    FB.Event.subscribe('auth.statusChange', function(response){
        console.log(response.authResponse.userID);
    });

    FB.init({
        appId      : **************,
        cookie     : true,
        xfbml      : false,
        version    : 'v2.0',
        status     : true
    });
}

我总是将自己的用户ID和用户名以及用户邀请的所有ID一起保存。当受邀用户登录该应用时,此受邀用户应该会看到邀请来自的朋友姓名。

我认为这很容易,因为我认为用户ID在应用范围内总是相同的。对于大多数用户,该应用程序的工作正确。但是对于其中一个应用测试人员(真实的现有fb-user,角色"管理员" - 而不仅仅是创建的测试用户),有两个不同的ID。当用户自己登录时,ID与其他用户邀请时返回的ID不同。

apprequests方法返回以下第一个ID,statusChange返回第二个:

102048*****482880
102048*****482879

你可以看到,ID彼此非常相似但不相同(只是+1)。什么原因?此问题只有多个测试用户中的一个。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我现在可以解决我的问题了:

我的javascript文件中有一个额外的代码,其中用户ID被意外地用作整数而不是字符串。 Javascript有很大的整数问题,所以这是一个舍入问题。

所以解决方案是始终使用字符串类型作为id。