Ryan_NR
(Ryan)
30 Settembre 2019, 2:34pm
1
Ciao a tutti, sono un utente amministratore della nostra istanza Discourse, ma non riesco a interrogare determinati endpoint.
A volte ricevo questo:
Altre volte mi viene richiesto: È necessario essere loggati per eseguire questa operazione.
Ho confermato che la chiave API che sto utilizzando è associata al mio utente amministratore e che l’API_Username corrisponde al mio nome utente. Avete qualche consiglio al riguardo?
Il mio sospetto è che la chiamata non stia inviando le credenziali correttamente?
blake
(Blake Erickson)
1 Ottobre 2019, 1:14pm
3
Potresti provare a passare le credenziali API nell’intestazione della richiesta invece che nei parametri della query. Dovrebbe esserci un esempio nell’argomento della documentazione API.
Ryan_NR
(Ryan)
1 Ottobre 2019, 1:14pm
4
Potrebbe essere, non sono sicuro. La configurazione che ho è solo la raccolta Postman scaricata da qui:
Discourse API
Please view the Discourse API Documentation site for detailed info:
https://docs.discourse.org
Authentication
API requests must use HTTP header based authentication. Pass your Api-Key and Api-Username as HTTP headers. Authentication via query parameters or request body is not supported (this was removed in April 2020). Please see the example cURL request below.
The only API endpoints that continue to support credentials in query parameters are requests to…
Ho solo sostituito la chiave API, il nome utente e l’URL di base.
Questa raccolta non è più valida?
blake
(Blake Erickson)
1 Ottobre 2019, 1:17pm
6
Sì, alcune di esse sono probabilmente obsolete.
Ryan_NR
(Ryan)
1 Ottobre 2019, 1:21pm
7
@blake - L’invio delle credenziali come intestazione della richiesta restituisce lo stesso risultato:
{
"errors": [
"Non sei autorizzato a visualizzare la risorsa richiesta."
],
"error_type": "invalid_access"
}
blake
(Blake Erickson)
1 Ottobre 2019, 1:52pm
8
Sono riuscito a far funzionare la richiesta API per i membri del gruppo su Meta con questo comando curl:
curl -i -sS -X GET "https://meta.discourse.org/groups/my-private-group/members.json" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: key" \
-H "Api-Username: username"
Forse puoi usare l’opzione “Copia come comando curl” in Postman e fare un confronto.