我在用户内编写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)。什么原因?此问题只有多个测试用户中的一个。有什么想法吗?
答案 0 :(得分:0)
我现在可以解决我的问题了:
我的javascript文件中有一个额外的代码,其中用户ID被意外地用作整数而不是字符串。 Javascript有很大的整数问题,所以这是一个舍入问题。
所以解决方案是始终使用字符串类型作为id。