Sto cercando di utilizzare l’API di Discourse per creare un elenco di tutti i post (solo i primi post) con un tag specifico. Finora, sono riuscito solo a ottenere gli ultimi post, che recuperano circa 40 post, inclusi i commenti. Quando ho provato a recuperare un ID di post specifico, alcuni hanno funzionato, ma per altri ho ottenuto la risposta
{'errors': ['You are not permitted to view the requested resource.'],'error_type': 'invalid_access'}
anche se la chiave API che sto utilizzando ha accesso amministrativo a tutti i post sul nostro Discourse. Qualcuno ha già riscontrato questo problema?
Puoi pubblicare il tuo snippet di codice? (Senza includere la chiave API)
Vedi qualche schema qui su cosa funziona e cosa no?
Ciao @RGJ, ho notato che riesco a recuperare singoli post se erano presenti nell’elenco recuperato originariamente da posts.json. Ho usato lo snippet di codice qui sotto
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()
Poi ho provato a cambiare questa chiamata in https://forum.algovera.ai/posts/{id}.json", dove l’ID è stato preso dall’URL del particolare post che stavo guardando.
Il numero nell’URL non è l’ID, è il numero del post, che è relativo all’ID dell’argomento.
Se vuoi ottenere l’ID del post puoi recuperarlo dal JSON dell’argomento come post_stream.posts[].id
Quindi i post in questo argomento hanno
|ID argomento|numero post|ID|
|—|—|—|\n|255455|1|1241013|\n|255455|2|1241026|\n|255455|3|1241056|\n
e il tuo post più recente in questo argomento è https://meta.discourse.org/posts/1241056.json
Giusto, grazie. Ha funzionato, quindi cosa dovrei chiamare se volessi recuperare gli argomenti più recenti e poi il testo non elaborato per il primo post di ciascun argomento? Ho visto la chiamata List Topics nella documentazione ma non sono sicuro di quale dovrebbe essere lo slug.