Quale scope è necessario per accedere a {{localhost}}/posts.json?

Ciao,

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.

#pr-benvenuto per una nuova ambito o per aggiungere questo a read, penso.