在一个facebook应用程序中为一个facebook用户获取不同的用户ID

Getting different user IDs for one facebook user within one facebook-App?

本文关键字:facebook 用户 一个 ID 应用程序 获取      更新时间:2023-09-26

我正在为一个用户可以通过邀请朋友的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用户,角色是"管理员",而不仅仅是创建的测试用户)来说,有两个不同的ID。当用户自己登录时,ID与其他用户邀请他时返回的ID不同。

appequests方法返回以下ID和状态中的第一个。更改第二个:

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

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

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

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

因此,解决方案是始终使用字符串类型作为id。