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:
<div data-theme-toc="true"> </div>
# API di Discourse
Si prega di consultare il sito della Documentazione API di Discourse per informazioni dettagliate:
https://docs.discourse.org
> ## Autenticazione
> **Le richieste API devono utilizzare l'autenticazione basata sulle intestazioni HTTP.** Passa la tua `Api-Key` e `Api-Username` come intestazioni HTTP. L'autenticazione tramite parametri di query o corpo della richiesta non è supportata (questa funzionalità è stata rimos…
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.