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

Vous devez placer la clé API dans l’en-tête, et non dans l’URL.

Je l’ai aussi essayé. J’obtiens toujours une erreur 403 Forbidden avec BODY-> [“BAD CSRF”]

Les informations d’identification de l’API doivent être incluses dans l’en-tête de la requête. Vous devez également utiliser un tiret à la place d’un soulignement pour les noms des champs d’en-tête :

  • api_key doit être remplacé par api-key (ou Api-Key)
  • api_username doit être remplacé par api-username (ou Api-Username)

La règle est que les noms des champs d’en-tête ne sont pas sensibles à la casse, mais vous devez utiliser des tirets et non des soulignements. (Je l’ai appris à la dure.) Consultez l’exemple en haut de Discourse REST API Documentation pour voir une requête API correctement formatée.