我试图在Facebook上把所有的用户的朋友的当前位置,并正在运行到一个奇怪的问题,其中一些的那些朋友正在读出空时我就可以在它说:“住在自己的实际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,但并非总是如此?
谢谢。
隐私设置有比Facebook API的更高的优先级。
如果用户已经限制隐私设置特定的信息,您将无法获取该被Facebook的API(图形,FQL,REST API),即使该用户授予权限。
如
如果我有限制分享我的隐私设置的生日,没有应用就能够抓住,即使他们提出要求我的生日。
此外,用户可以限制越来越特定信息的应用程序。
例如,用户可以允许应用程序xyz
访问他们想要的一切,但同时用户可以限制应用程序xyz
才能访问他的位置
我希望这回答了你的问题。
有2种可能性; 用户谁拥有CURRENT_LOCATION空的朋友们:
1)在自己的Facebook个人资料并未说明其当前位置
2)他们指定的当前位置在他们的Facebook的个人资料,但他们的隐私设置拒绝你看到它
我也有同样的问题。
我检查了这是我的朋友两个不同的用户。
在这两种情况下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端缓存的一些问题。
这里同样的问题。 我可以检索CURRENT_LOCATION或hometown_location为我的朋友NONE。 对于大多数人我可以很容易地访问,虽然他们的个人资料看到它。 应用权限friends_location和friends_hometown设置。
试试这个查询来获取你的朋友的当前位置
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权限运行此查询
文章来源: FB Graph / FQL: Current_location of friends is sometimes reading Null when FB page shows a location