0

像这样查询 FQL 注释表时:

SELECT post_fbid, fromid, username, time, text FROM comment WHERE post_id = id

我得到了结果,但每条评论的用户名都是“匿名用户”。有谁知道为什么会发生这种情况并且可能有解决方案?

谢谢

4

2 回答 2

2

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)"
}
于 2013-03-11T16:03:50.940 回答
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)"
}
于 2013-03-10T21:43:25.323 回答