複数回の API 呼び出し中の 403 エラー

ユーザーの更新と停止に以下の API を使用していますが、403 エラーが発生しています。このエラーの原因についてご教示ください。参考までに、管理者ユーザーの API キーを使用しています。

停止 API

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

リクエスト BODY

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

レスポンス - 403 Forbidden

メール更新

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

リクエスト BODY

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

レスポンス - 403 Forbidden

API キーは URL ではなく、ヘッダーに含めてください。

「いいね!」 2

試してみましたが、同じく 403 Forbidden エラーが発生します。BODY に [“BAD CSRF”] と表示されます。

API 認証情報はリクエストヘッダーに含める必要があります。また、ヘッダーフィールド名ではアンダースコア(_)ではなくダッシュ(-)を使用してください。

  • api_keyapi-key(または Api-Key)に変更する必要があります。
  • api_usernameapi-username(または Api-Username)に変更する必要があります。

ルールとして、ヘッダーフィールド名は大文字小文字を区別しませんが、アンダースコアではなくダッシュを使用する必要があります。(私はこのことを痛い目に遭って学びました。)正しくフォーマットされた API リクエストの例は、Discourse REST API Documentation の上部をご覧ください。

「いいね!」 4