特定のユーザーの「hot」および「latest」トピックを取得するために、システム API キーを使用することは可能ですか?

私のユースケースは以下の通りです:フォーラムのホームページに、最新かつ最も人気のあるトピックを上位5件表示したいと考えています。ただし、特定のDiscourseユーザーに適した内容にフィルタリングする必要があります。例えば、一部のユーザーは非公開カテゴリへのアクセス権を持っており(そのカテゴリ内のトピックは「最新」や「人気」リストに反映されるべきですが)、他のユーザーにはその権限がありません。

現在、必要な情報を取得するためにDiscourse APIを呼び出す際、システムAPIキーを使用しています。これにより、隠しカテゴリの結果だけでなく、グローバルにピン留めされたトピックも常にリストの先頭に表示されてしまいます(ユーザー自身がピン留めを解除している場合でもです)。

したがって、フォーラム全体ではなく、特定のユーザー向けの最新/人気トピックを取得する必要がある理由はお分かりいただけると思います。

もしこの機能がユーザーAPIキーを使用して可能であれば、それは別の問題となります。ユーザーごとにAPIキーを(プログラム的に)作成し、結果を取得するたびにそれを破棄しなければならないのは、非常に不自然な方法に思えます(他の用途に必要ないため、取得直後に破棄する必要があるでしょう)。これが唯一の方法なのでしょうか?

私が提案する解決策は、システムAPIキーで latest.json または top.json を呼び出す際に、結果を制限するためのオプションのユーザーIDパラメータを受け付けるようにする、というものです。

すべてのユーザー用の API キーを作成する場合、そのキーが実行されるユーザーを指定できます。その後、そのユーザーになりすまして動作します。

@sam さん、こんにちは!素晴らしいですね。では、エンドポイントはどこでしょうか?私は全ユーザー用のシステム API キーを持っています。

すべての最新データをフィルターなしで取得する通常のエンドポイントは以下の通りです:

/latest.json

ユーザー固有のエンドポイントとして試しましたが、動作しませんでした(username はフォーラム内のユーザー名です):

/username/latest.json
/latest/username.json
/username/latest
/latest/username
/latest/4.json(ユーザー名ではなくユーザー ID を使用)
など。

見つけられなくて困っています :-\

上記のドキュメントの例のように、Api-Username にユーザー名を指定してください。

あー、なるほど。わかりました。