Estou tentando usar a API do Discourse para criar uma lista de todas as postagens (apenas as primeiras postagens) com uma tag específica. Até agora, só consegui obter as postagens mais recentes, que recuperam cerca de 40 postagens, incluindo comentários. Quando tentei recuperar um ID de postagem específico, algumas funcionaram, mas para outras recebi a resposta
{'errors': ['You are not permitted to view the requested resource.'],'error_type': 'invalid_access'}
mesmo que a chave de API que estou usando tenha acesso de administrador a todas as postagens em nosso Discourse. Alguém já encontrou esse problema antes?
Você pode postar seu trecho de código? (Sem incluir a chave da API)
Você vê algum padrão aqui em que funciona e em que não funciona?
Olá @RGJ, notei que consigo recuperar posts individuais se eles estiverem na lista recuperada originalmente por posts.json. Usei o trecho de código abaixo
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()
Então tentei mudar essa chamada para https://forum.algovera.ai/posts/{id}.json", onde o ID foi retirado do URL do post específico que eu estava olhando.
O número no URL não é o ID, esse é o número da postagem, que é relativo ao ID do tópico.
Se você quiser obter o ID da postagem, pode recuperá-lo do JSON do tópico como post_stream.posts[].id
Portanto, as postagens neste tópico têm
| ID do tópico | número da postagem | ID |
|---|---|---|
| 255455 | 1 | 1241013 |
| 255455 | 2 | 1241026 |
| 255455 | 3 | 1241056 |
e sua postagem mais recente neste tópico é https://meta.discourse.org/posts/1241056.json
Ah, certo, obrigado. Funcionou, então o que eu precisaria chamar se quisesse recuperar os tópicos mais recentes e, em seguida, o texto bruto da primeira postagem em cada tópico? Eu vi a chamada List Topics na documentação, mas não tenho certeza de qual deve ser o slug.