Ho generato una chiave API emessa dall’amministratore con gli ambiti write, read e read lists. Tuttavia, quando provo a utilizzare la chiave (aggiungendola nell’intestazione Api-Key) per accedere all’endpoint {{localhost}}/posts.json, ottengo il seguente errore:
"errors": [
"Non sei autorizzato a visualizzare la risorsa richiesta. Il nome utente o la chiave API non sono validi."
],
"error_type": "invalid_access"
}
D’altro canto, generando una chiave globale ottengo l’accesso all’endpoint. Qual è l’ambito corretto (minimo) per leggere {{localhost}}/posts.json?
Non l’ho ancora testato, ma penso che ciò che stai osservando sia il comportamento previsto. Puoi fare clic sul pulsante dell’ancora visualizzato accanto a ciascuno degli ambiti della chiave API per vedere quali percorsi quell’ambito ti consente di accedere. Vedrai che l’ambito read si applica solo alle rotte che iniziano con /t. L’ambito read lists ti dà accesso alle liste dei topic di Discourse. Non esiste un ambito che consenta specificamente l’accesso a /posts.json, quindi sembra che dovrai utilizzare una chiave globale per questo.
Mi chiedo se abbia senso aggiungere /posts.json all’ambito read.
Ciao Simon! Grazie per la risposta e la spiegazione. Per il mio caso d’uso ho bisogno di leggere i post da /posts.json, ma allo stesso tempo vorrei essere il meno invasivo possibile e richiedere solo l’accesso in sola lettura. Esiste qualche soluzione alternativa?
Se stai effettuando query solo per post pubblici, potresti essere in grado di inviare una richiesta API non autenticata a /posts.json. Se il tuo sito è privato o i post si trovano in categorie protette, credo che l’unico modo attualmente per recuperare i post sia tramite una chiave API globale.