像这样查询 FQL 注释表时:
SELECT post_fbid, fromid, username, time, text FROM comment WHERE post_id = id
我得到了结果,但每条评论的用户名都是“匿名用户”。有谁知道为什么会发生这种情况并且可能有解决方案?
谢谢
像这样查询 FQL 注释表时:
SELECT post_fbid, fromid, username, time, text FROM comment WHERE post_id = id
我得到了结果,但每条评论的用户名都是“匿名用户”。有谁知道为什么会发生这种情况并且可能有解决方案?
谢谢
username
仅当您在外部站点上使用 Facebook 评论插件时,该字段才包含数据。人们可以在未登录 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)"
}
用户名 用户发表评论时输入的用户名。在这些情况下,返回的 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)"
}