jcasman
(Jesse Casman)
1
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
JimPas
3
はい、投稿はトピック内に含まれます。そのため、新しい投稿を検索しても新しいトピックは検索されません。
トピックを作成すると、同時に最初の投稿も作成されます。つまり、最初の投稿はトピックの一部です。
ただし、その後のすべての返信も「投稿」と見なされます。返信を投稿していることになりますから。
offset について、API の投稿が「管理画面 → レポート → 投稿」の投稿と同一かどうかについては、他の方にお任せします。
「いいね!」 1
まず、お手伝いいただきありがとうございます。
/user_actions.json?offset=0&username=USERNAME&filter=5 を使用しても、トピックの最初の投稿はカウントされていないようです。
API の使い方が間違っているのかもしれません。
テストアカウントには 7 つのアクティビティがあります。
- トピック 3 件(それぞれ投稿 1 件)
- 既存のトピックへの返信 4 件
「投稿」でフィルターすると、期待される 7 件ではなく 4 件が返ってきます。
期待される投稿数 7 を得るには、「返信」と「トピック」を追加する必要があると思います。
私の理解では、filter を 5 に設定すれば、トピックの最初の投稿と返信の両方が返ってくるはずです。
API を使って特定のユーザーの posts(投稿)数を取得する方法について、ご助言いただければ幸いです。
query = {'username': username, 'filter': '5'};
var response = await getRequest(
path: '/user_actions.json',
queryParameters: query);
JimPas
6
その通りです。すべてのトピックには、トピック作成の一部として「最初の投稿」が存在します。トピックのヘッダーのみでトピックを作成することはできません。そのため、その最初の投稿は、投稿クエリ(フィルター=5)における投稿(返信)としてカウントされません。
投稿をクエリする際は、既存のトピックに対する新しい返信をクエリすることになります。OP(オリジナルポスト)は除外されます。これは、新しい投稿のみを表示するという期待通りの動作です。
そのユーザーが作成したトピックもクエリに含める場合、フィルター=4 を使用すると、そのユーザーが作成したトピック(OP をカウントに含めたもの [3])と、その返信 [4] が返されます。これにより、レポートに表示されている 7 という数値が得られます。作成したトピック 3 件+返信 4 件で合計 7 件(OP 3 件+返信 4 件)となります。
さらに詳しい方がいらっしゃれば、お気軽にご参加ください。
「いいね!」 4
@JimPas さん、ご助力ありがとうございます。非常に役立ちました。この知識を基に、アプリケーションダッシュボードの作成をより自信を持って進めていきます。良い一日を。見知らぬ私を助けていただき、本当にありがとうございます。
「いいね!」 3
jcasman
(Jesse Casman)
8
@JimPas さん、同感です。とても役に立ち、大変感謝しております。ありがとうございます。
「いいね!」 2