カテゴリAPIリクエストですべてのトピックをダウンロード

フォーラムの使用状況に関する分析を作成しており、各カテゴリのトピックの情報をダウンロードしています。

しかし、リクエストでは常にすべてのトピックが取得されるわけではありません。これは、最新のレポートから消えた以前取得したトピックがあったため、初めて気づきました。

例:

ブラウザでカテゴリページを開くと、トピックは存在します。

使用しているコード:

from dotenv import load_dotenv
import os
import requests

load_dotenv()

headers = {
    "Content-Type": "application/json",
    "Api-Username": os.environ["USERNAME"],
    "Api-Key": os.environ["API_KEY"],
}

method = "GET"
url = "https://forum.aragon.org/c/proposals-for-main-dao/50.json"

response = requests.request(method, url, headers=headers)
topics = response.json()["topic_list"]["topics"]

found_topics = list()
for topic in topics:
    found_topics.append(topic["id"])

print(sorted(found_topics))

{topic: topic in found_topics for topic in [3519, 3528]}
>>>
[3075, 3224, 3299, 3312, 3449, 3472, 3474, 3526, 3554, 3555, 3557, 3583, 3586, 3592, 3613, 3624, 3626, 3659, 3674, 3677, 3680, 3694, 3695, 3699, 3702, 3710, 3716, 3720, 3725, 3737]

{3519: False, 3528: False}

これはなぜ発生するのでしょうか、そしてどのように修正できますか?

その場合は、Data Explorer プラグインを使用する必要があります。

Discourse Data Explorer および Discourse API で Data Explorer クエリを実行する方法 を参照してください。

「いいね!」 1

ありがとうございます。しかし、現在そのプラグインをインストールできません。APIを修正する方法はありますか?

これは公式で、安定していて、よくメンテナンスされているプラグインです。インストールできないのはなぜですか?

UIはページネーションシステムを使用して、各トピックセットをプルダウンします。それが、すべて表示できない理由でしょう。

ブラウザが送信しているクエリを確認して、各呼び出しの例を確認してください(ネットワークタブを参照)。

しかし、@pfaffmanが正しく指摘しているように、これはUIに最適化されているため、分析のためにデータを取得する最も適切な方法ではありません。

「いいね!」 1