me/friends?fields=installed returns some installed = true 未安装时

me/friends?fields=installed returns some installed = true when have not installed

我有这个查询:

FB.api('/me/friends?fields=installed,name&<?php echo $access_token?>',  { data: response.data }, function(res) {

}

但是在响应中,很少有已安装的属性,如果没有,则没有安装(因为我在我的数据库中存储了任何注册用户,但他们不在那里)

我是这样检查的:

if(response.data.length > 0){
    for(i = 0; i < response.data.length; i++){
       var guy = response.data[i];
       if( guy.installed == true ) { // also tried with ===
          // do stuff
       }
    }
}

有没有更好的方法来确认?

PS: 想想,这可能是因为他们接受了,但我的回调失败了?

不确定我是否真的遇到了你的问题,但与 installed 标志相关的我自己的数据相比,我更相信 FB 数据。因此,在将使用您的应用程序的用户存储在数据库中时可能存在问题?

其次,/me/friends 应该 AFAIK return 那些正在使用你的应用程序的朋友,所以它应该总是 true 对于那些.我用我的一个应用程序做了测试,这似乎是正确的。

第三,检查

应该就足够了
if (guy.installed) {
    // do stuff
}