投稿とは何ですか? (Discourse API に関する質問)

Discourse で運営しているフォーラムのアクティビティを正確に把握し、レポートを作成しようとしています。根本的に「投稿(Post)」というものが何かを理解していないのではないかと思っています。

API には「トピック(Topics)」と「投稿(Posts)」があります。例えば、投稿を取得したい場合は filter=5 を使用します。

/user_actions.json?offset=0&username=USERNAME&filter=5

(「offset」が何か教えていただけますか?)

ここが謎です。投稿にはトピックが含まれていないように見えます。これは想定された動作でしょうか?

投稿と返信(Replies)の関係性はどうなっていますか?投稿が返信の上位集合(superset)になっているようには見えません。

API の投稿は、レポート(管理 –\u003e レポート –\u003e 投稿)で取得されるものと同じでしょうか?

ご支援いただければ幸いです。

「いいね!」 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 件(それぞれ投稿 1 件)
  • 既存のトピックへの返信 4 件

「投稿」でフィルターすると、期待される 7 件ではなく 4 件が返ってきます。

期待される投稿数 7 を得るには、「返信」と「トピック」を追加する必要があると思います。

私の理解では、filter5 に設定すれば、トピックの最初の投稿と返信の両方が返ってくるはずです。

API を使って特定のユーザーの posts(投稿)数を取得する方法について、ご助言いただければ幸いです。

 query = {'username': username, 'filter': '5'};

  var response = await getRequest(
      path: '/user_actions.json',
      queryParameters: query);

その通りです。すべてのトピックには、トピック作成の一部として「最初の投稿」が存在します。トピックのヘッダーのみでトピックを作成することはできません。そのため、その最初の投稿は、投稿クエリ(フィルター=5)における投稿(返信)としてカウントされません。

投稿をクエリする際は、既存のトピックに対する新しい返信をクエリすることになります。OP(オリジナルポスト)は除外されます。これは、新しい投稿のみを表示するという期待通りの動作です。

そのユーザーが作成したトピックもクエリに含める場合、フィルター=4 を使用すると、そのユーザーが作成したトピック(OP をカウントに含めたもの [3])と、その返信 [4] が返されます。これにより、レポートに表示されている 7 という数値が得られます。作成したトピック 3 件+返信 4 件で合計 7 件(OP 3 件+返信 4 件)となります。

さらに詳しい方がいらっしゃれば、お気軽にご参加ください。

「いいね!」 4

@JimPas さん、ご助力ありがとうございます。非常に役立ちました。この知識を基に、アプリケーションダッシュボードの作成をより自信を持って進めていきます。良い一日を。見知らぬ私を助けていただき、本当にありがとうございます。

「いいね!」 3

@JimPas さん、同感です。とても役に立ち、大変感謝しております。ありがとうございます。

「いいね!」 2