Errore 403 durante più chiamate API

Stiamo utilizzando le seguenti API per aggiornare e sospendere gli utenti, ma stiamo ricevendo errori 403. Potete informarci qual è la causa di questo errore? Per vostra informazione, stiamo utilizzando la chiave API di un utente amministratore.

API di sospensione

{{base_url}}/admin/users/316/suspend?api_key={{api_key}}&api_username={{api_username}}

Corpo della richiesta

{
“suspend_until”: “3020-04-17”,
“reason”: “inactive”
}

Risposta - 403 Forbidden

Aggiornamento email

{{base_url}}/users/{username}/preferences/email?api_key={{api_key}}&api_username={{api_username}}

Corpo della richiesta

{
“email”: “discourse1@example.com
}

Risposta - 403 Forbidden

Devi inserire la chiave API nell’intestazione, non nell’URL.

L’ho provato anch’io. Ricevo lo stesso errore 403 Forbidden con BODY- [“BAD CSRF”]

Le credenziali API devono essere incluse nell’intestazione della richiesta. Devi anche utilizzare un trattino invece di un trattino basso per i nomi dei campi dell’intestazione:

  • api_key deve essere modificato in api-key (o Api-Key)
  • api_username deve essere modificato in api-username (o Api-Username)

La regola è che i nomi dei campi dell’intestazione non sono sensibili alle maiuscole/minuscole, ma devi usare i trattini, non i trattini bassi. (L’ho imparato a mie spese.) Dai un’occhiata all’esempio in cima a Discourse REST API Documentation per vedere una richiesta API correttamente formattata.