特定のタグが付いたすべての投稿(最初の投稿のみ)のリストを作成するために、Discourse API を使用しようとしています。これまでのところ、コメントを含む約 40 件の投稿を取得する最新の投稿しか取得できませんでした。特定の投稿 ID を取得しようとしたところ、一部は機能しましたが、API キーはすべての Discourse に管理者アクセス権を持っているにもかかわらず、一部では次の応答しか得られませんでした。
{'errors': ['You are not permitted to view the requested resource.'],'error_type': 'invalid_access'}
以前にこの問題に遭遇した人はいますか?
「いいね!」 1
コードスニペットを投稿していただけますか?(APIキーは含めないでください)
うまくいっているものとそうでないものの間に何かパターンが見られますか?
「いいね!」 1
こんにちは @RGJ さん、posts.json で最初に取得したリストに含まれていた個々の投稿を取得できることに気づきました。以下のコードスニペットを使用しました。
url = "https://forum.algovera.ai/posts.json"
username = "algovera"
params = {'Api-Key': api_key, "Api-Username": username}
r = requests.get(url = url, params = params)
data = r.json()
次に、この呼び出しを https://forum.algovera.ai/posts/{id}.json\" に変更しようとしました。ここで ID は、私が参照していた特定の投稿の URL から取得しました。
URLの番号はIDではなく、トピックIDに対する相対的な投稿番号です。
投稿IDを取得したい場合は、トピックJSONからpost_stream.posts[].idとして取得できます。
したがって、このトピックの投稿は以下のようになります。
| トピックID | 投稿番号 | ID |
|---|---|---|
| 255455 | 1 | 1241013 |
| 255455 | 2 | 1241026 |
| 255455 | 3 | 1241056 |
そして、このトピックでのあなたの最新の投稿は https://meta.discourse.org/posts/1241056.json です。
「いいね!」 1
なるほど、ありがとうございます。うまくいきました。最新のトピックを取得し、次に各トピックの最初の投稿の生のテキストを取得するには、何を呼び出す必要がありますか?ドキュメントでトピック一覧の呼び出しを見ましたが、スラッグが何であるかわかりません。