在查询FQL注释表时,如下所示:
SELECT post_fbid, fromid, username, time, text FROM comment WHERE post_id = id
我收到了结果,但每条评论的用户名都是“匿名用户”。有谁知道为什么会发生这种情况并且可能有解决方案吗?
由于
答案 0 :(得分:2)
如果您在外部网站上使用Facebook评论插件,则username
字段仅包含数据。人们可以在不登录Facebook的情况下发表评论。该字段反映用户在离开评论时输入的数据。
否则,正如Stephane所提到的,您需要使用fromid
字段并将其解析为实际用户。
我会查询profile
表来获取此信息,因为它会返回任何ID的所有者,无论是页面,组还是用户:
{
"comments": "SELECT post_fbid, fromid, time, text FROM comment WHERE post_id=\"205861559433343_336511733034991\"",
"commenters": "SELECT id, username, name FROM profile WHERE id IN (SELECT fromid FROM #comments)"
}
答案 1 :(得分:1)
用户名用户在发布评论时输入的用户名。 在这些情况下,返回的fromid将为0.请注意用户名 对于有效用户,此处不予退回。
老实说,我不明白这个username
究竟代表什么,但你可以简单地忽略它!
fromid
提供评论者的ID。从那里,您获得用户名没有问题!
ID
可以是用户或页面之一。我为你制作了一个多重查询,收集了你需要的所有信息:
{
"comments": "SELECT post_fbid, fromid, time, text FROM comment WHERE post_id=\"205861559433343_336511733034991\"",
"users": "SELECT uid, username FROM user WHERE uid IN (SELECT fromid FROM #comments)",
"pages": "SELECT page_id, name FROM page WHERE page_id IN (SELECT fromid FROM #comments)"
}