jcasman
(Jesse Casman)
1
我试图准确衡量并报告我运行的 Discourse 论坛的活动情况。我觉得我从根本上还不理解什么是“帖子”(Post)。
在 API 中,有“主题”(Topics)和“帖子”(Posts)。例如,如果我想获取帖子,可以使用 filter=5:
/user_actions.json?offset=0&username=USERNAME&filter=5
(有人能告诉我“offset”是什么吗?)
这里有个谜团。帖子似乎不包含主题。这是预期的行为吗?
帖子与回复(Replies)是什么关系?它们看起来并不是一个超集。
API 中的帖子与报告中(管理员 → 报告 → 帖子)获取的帖子是相同的吗?
任何帮助都将不胜感激。
1 个赞
据我所知,/user_actions.json?offset=0&username=USERNAME&filter=5 中用于帖子的 filter=5 并不对应报告中的“帖子”。报告中的“帖子”似乎同时包含了“帖子”(filter=5)和“主题”(filter=4)。
我推测,“帖子”本应包含“回复”加上“主题”。如果有更了解情况的人能确认这一点,那就太好了。
如果是这样的话,我可以尝试使用“回复”(filter=6)和“主题”(filter=4)。不过,我对此有些担心,因为 Discourse 管理员后台中的报告给出的数字是正确且符合预期的。
请尝试搜索一个使用 Discourse API 生成报告的示例。
1 个赞
是的,帖子位于主题内部。因此,搜索新帖子不会搜索新主题。
当你创建一个主题时,你同时也创建了一个帖子——第一个帖子就是主题的一部分。
不过,所有后续的回复也被视为帖子——因为你正在发布你的回复。
至于 offset 以及 API 中的帖子是否与“管理 → 报告 → 帖子”中的帖子相同,我将这个问题留给其他人解答。
1 个赞
首先,感谢您的帮助。
使用 /user_actions.json?offset=0&username=USERNAME&filter=5 时,我似乎无法统计到作为主题第一个帖子的帖子。
我可能是 API 使用不当。
我有一个测试账号,共有 7 项活动。
- 3 个主题,每个主题包含一个帖子
- 4 条对现有主题的回复
当我筛选“帖子”时,得到的计数是 4,而不是预期的 7。
为了得到预期的 7 个帖子计数,我认为我需要将“回复”和“主题”相加。
据我所知,filter 设为 5 应该能同时返回作为主题第一个帖子的帖子以及回复,对吗?
我很希望能得到一些帮助,以便理解如何通过 API 获取特定用户的 posts 计数。
query = {'username': username, 'filter': '5'};
var response = await getRequest(
path: '/user_actions.json',
queryParameters: query);
没错。所有主题在创建时都会包含一个“首帖”。如果只有主题标题而没有首帖,主题根本无法创建。该首帖在帖子查询(过滤器-5)中不会被计为回复。
当你查询帖子时,实际上是在查询现有主题的新回复——不包括主题作者(OP)。这是预期行为,即仅显示新帖子。
若要将该用户创建的主题也包含在查询结果中,则应使用过滤器=4。这将返回该用户创建的主题(包括将首帖计入总数 [3])以及他们的回复 [4]。这样就会得到你在报告中看到的 7。即:3 个创建的主题 + 4 条回复,总计 7(3 个首帖 + 4 条回复)。
如有其他更了解此情况的朋友,欢迎随时补充。
4 个赞
@JimPas,感谢您的帮助,这非常有用。有了这些知识,我将更有信心地推进应用程序仪表板的开发。祝您有美好的一天。您愿意帮助像我这样的陌生人,真是太好了。
3 个赞
jcasman
(Jesse Casman)
8
我也是,@JimPas,非常有用,非常感谢。谢谢。
2 个赞