Erro 403 durante múltiplas chamadas de API

Estamos utilizando as seguintes APIs para atualizar e suspender usuários, mas estamos recebendo erros 403. Poderia nos informar qual é a causa desse erro? Para sua informação, estamos usando a chave de API de um usuário administrador.

API de Suspensão

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

CORPO DA SOLICITAÇÃO

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

Resposta - 403 Proibido

Atualização de e-mail

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

CORPO DA SOLICITAÇÃO

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

Resposta - 403 Proibido

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

2 curtidas

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 curtidas