【发布时间】:2013-02-24 13:14:42
【问题描述】:
当像这样查询 FQL 注释表时:
SELECT post_fbid, fromid, username, time, text FROM comment WHERE post_id = id
我得到了结果,但每条评论的用户名都是“匿名用户”。有谁知道为什么会发生这种情况并且可能有解决方案?
谢谢
【问题讨论】:
标签: facebook comments facebook-fql
当像这样查询 FQL 注释表时:
SELECT post_fbid, fromid, username, time, text FROM comment WHERE post_id = id
我得到了结果,但每条评论的用户名都是“匿名用户”。有谁知道为什么会发生这种情况并且可能有解决方案?
谢谢
【问题讨论】:
标签: facebook comments facebook-fql
username 字段仅在您在外部网站上使用 Facebook 评论插件时才包含数据。人们可能会在未登录 Facebook 的情况下离开 cmets。此字段反映用户在发表评论时输入的数据。
否则,正如 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)"
}
【讨论】:
用户名 用户发表评论时输入的用户名。 在这些情况下,返回的 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)"
}
【讨论】: