FB Graph / FQL:当FB页面显示位置时,朋友的Current_location有时会读取Null

时间:2012-05-04 06:35:10

标签: facebook facebook-graph-api facebook-fql missing-data

我试图在Facebook上提取所有用户朋友的当前位置,并且遇到一个奇怪的问题,其中一些朋友正在读取NULL,当我在他们的实际Facebook页面上看到它说“生活”在 。“这个错误的难点在于它只发生在大约30%的情况下。在其余的情况下,它会提取所有正确的信息,这告诉我权限可能已正确设置。

具体来说,我使用的FQL代码是:

SELECT uid,
       name,
       current_location
FROM   USER
WHERE  uid IN (SELECT uid2
               FROM   friend
               WHERE  uid1 = Me())

当直接向图表发出javascript请求时出现了同样的问题,因此它似乎也不是FQL问题。有谁知道为什么current_location可能有时失败并报告NULL,但并非总是如此?

谢谢。

5 个答案:

答案 0 :(得分:2)

隐私设置的优先级高于facebook api。

如果用户限制了隐私设置中的特定信息,即使用户授予了权限,您也无法通过facebook api(graph,fql,rest api)获取该信息。

e.g。

如果我限制在隐私设置上分享我的生日,即使他们要求,也没有应用程序可以抓住我的生日。

此外,用户可以限制应用获取特定信息。

e.g。用户可以允许应用xyz访问他们想要的所有内容,但同时用户可以限制应用xyz访问其位置

我希望这能回答你的问题。

答案 1 :(得分:0)

有两种可能性; 拥有current_location的用户的朋友为null:

  

1)未在Facebook个人资料中指定他们当前的位置

     

2)他们在facebook个人资料中指定了当前位置,但是   他们的隐私设置拒绝你看到它

答案 2 :(得分:0)

我有同样的问题。

我检查了两个不同的用户,这些用户是我的朋友。

在两种情况下,FQL查询如:

select uid, first_name, name, birthday, birthday_date, current_address, current_location, hometown_location, sex from user where uid in (select uid2 from friend where uid1 = me()

null返回home_location

我检查过所有帐户和家庭位置都可以访问(隐私和应用隐私设置)。

我的访问令牌包含所有必需的权限(其他朋友显示了家庭位置)。

然后我用查询运行FQL控制台:

select uid, first_name, name, birthday, birthday_date, current_address, current_location, hometown_location, sex from user where uid = nnnn

作为所有者,结果如下:

  • 老板找到了家的位置。
  • 在我的旧FQL控制台浏览器标签上 - 仍然没有家庭位置。
  • 在我的新FQL控制台浏览器标签上 - 我找到了家的位置。

过了一会儿,我在旧的FQL控制台上找到了家的位置。

但旧的查询仍然没有返回原址...

看起来像FB方面的一些缓存问题。

答案 3 :(得分:0)

这里的问题相同。我可以为None的朋友检索current_location或hometown_location。对于大多数人来说,我可以通过访问他们的个人资料轻松地看到它。已设置应用权限friends_location和friends_hometown。

答案 4 :(得分:0)

尝试此查询以获取朋友的当前位置

SELECT first_name,uid, last_name, current_location.name 
FROM user 
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND current_location

此外,您需要 friends_location 权限才能运行此查询