メインコンテンツにスキップ

認証

このガイドでは、アプリケーションパスワードと Postman を使用して SportsPress REST API へのリクエストを認証する方法を説明します。

今日アップデートされました

認証

このガイドでは、アプリケーションパスワードと Postman を使用して SportsPress REST API へのリクエストを認証する方法を説明します。

GET リクエスト(データの読み取り)は認証不要です。POST・PUT・PATCH・DELETE 操作には認証が必要です。

前提条件:

  • SportsPress が有効化された WordPress インストール

  • 管理者または編集者のユーザーアカウント

ステップ 1 — Postman のダウンロードとインストール

https://www.postman.com/downloads/ にアクセスしてデスクトップアプリケーションをダウンロードします。アカウント作成は任意です。インストール後にアプリを開き、アカウントを作成するか「アプリに進む」を選択します。[+] タブをクリックして新しいリクエストを作成します。

ステップ 2 — アプリケーションパスワードの生成

アプリケーションパスワードは WordPress 5.6 以降に組み込まれています。古いバージョンをお使いの場合は、https://wordpress.org/plugins/application-passwords/ からアプリケーションパスワードプラグインをインストールしてください。

  1. WordPress 管理画面で ユーザー に移動します。

  2. ユーザー名をクリックしてプロフィールを開きます。

  3. アプリケーションパスワード セクションまでスクロールします。

  4. パスワードの名前を入力します(例:「Postman」や「APIクライアント」)。

  5. 新しいアプリケーションパスワードを追加 をクリックします。

  6. 生成されたパスワードがモーダルに表示されます — すぐにコピーして安全な場所に保管してください。再表示はされません。

ステップ 3 — Postman で Basic 認証を設定する

  1. Postman でリクエストを開きます。

  2. Authorization タブをクリックします。

  3. TypeBasic Auth に設定します。

  4. Username フィールドに WordPress の ユーザー名 を入力します。

  5. Password フィールドにステップ 2 で生成したアプリケーションパスワードを貼り付けます。

ステップ 4 — Content-Type ヘッダーを設定する

JSON ボディを送信する POST・PUT・PATCH リクエストには、以下のヘッダーを追加してください:

キー

Content-Type

application/json

Postman の Headers タブに移動してこのキーと値のペアを追加します。

ステップ 5 — テストリクエストを送信する

まず認証不要の GET リクエストで接続を確認します:

GET https://example.com/wp-json/sportspress/v2/teams

次に書き込み操作をテストします。例えば、チームを更新する場合:

PUT https://example.com/wp-json/sportspress/v2/teams/123

JSON ボディ:

{
  "title": "更新後のチーム名"
}

200 OK レスポンスと更新されたオブジェクトが返れば、認証は正常に機能しています。

コードでの認証

サーバーサイドの連携では、username:application_password を Base64 エンコードした値を Authorization ヘッダーで渡します:

$response = wp_remote_post(
    'https://example.com/wp-json/sportspress/v2/events',
    array(
        'headers' => array(
            'Authorization' => 'Basic ' . base64_encode( 'username:application-password' ),
            'Content-Type'  => 'application/json',
        ),
        'body' => json_encode( array(
            'title'  => '新しい試合',
            'status' => 'publish',
        ) ),
    )
);

ブラウザで動作する JavaScript クライアントの場合は、Nonce を使ったクッキーベースの認証を使用してください。詳細は WP REST API v2 認証ガイドを参照してください。

こちらの回答で解決しましたか?