Erreur 403 lors de multiples appels API

Nous utilisons les API suivantes pour mettre à jour et suspendre des utilisateurs, mais nous obtenons des erreurs 403. Pouvez-vous nous informer de la cause de cette erreur ? Pour votre information, nous utilisons la clé API d’un utilisateur administrateur.

API de suspension

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

CORPS de la requête

{
    "suspend_until": "3020-04-17",
    "reason": "inactive"
}

Réponse - 403 Interdit

Mise à jour de l’e-mail

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

CORPS de la requête

{
 "email": "discourse1@example.com"
}

Réponse - 403 Interdit

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

2 « J'aime »

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 « J'aime »