什么是 Post? (Discourse API 问题)

我试图准确衡量并报告我运行的 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 个赞

是的,帖子位于主题内部。因此,搜索新帖子不会搜索新主题。

当你创建一个主题时,你同时也创建了一个帖子——第一个帖子就是主题的一部分。
不过,所有后续的回复也被视为帖子——因为你正在发布你的回复。:slightly_smiling_face:

至于 offset 以及 API 中的帖子是否与“管理 → 报告 → 帖子”中的帖子相同,我将这个问题留给其他人解答。

1 个赞

这有帮助吗?

3 个赞

首先,感谢您的帮助。

使用 /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 个赞

我也是,@JimPas,非常有用,非常感谢。谢谢。

2 个赞