多次 API 调用期间出现 403 错误

我们正在使用以下 API 来更新和停用用户,但收到了 403 错误。请告知我们导致此错误的原因。附注:我们使用的是管理员用户的 API 密钥。

停用 API

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

请求体

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

响应 - 403 禁止访问

电子邮件更新

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

请求体

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

响应 - 403 禁止访问

您需要将 API 密钥放在请求头中,而不是 URL 中。

2 个赞

我也试过了。仍然收到 403 Forbidden 错误,BODY 显示为 [“BAD CSRF”]。

API 凭据需要放在请求头中。此外,您还需要使用连字符(-)而不是下划线(_)作为头部字段名称:

  • api_key 需要改为 api-key(或 Api-Key
  • api_username 需要改为 api-username(或 Api-Username

规则是:头部字段名称不区分大小写,但必须使用连字符,而不能使用下划线。(我是吃过亏才学到这一点的。)请查看 Discourse REST API Documentation 顶部的示例,以了解格式正确的 API 请求。

4 个赞