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

You need to put the API key in the header, not the url.

2 Mi Piace

Even tried it as well.Getting same 403 Forbidden with BODY-> [“BAD CSRF”]

The API credentials need to be in the request header. You also need to use a dash instead of an underscore for the header field names:

  • api_key needs to be changed to api-key (or Api-Key)
  • api_username needs to be changed to api-username (or Api-Username)

The rule is that the header field names are not case sensitive, but you need to use dashes, not underscores. (I learned this the hard way.) Have a look at the example at the top of Discourse API Documentation to see a properly formatted API request.

4 Mi Piace