REST API v1 のセットアップと使用方法
AffiliateWP には、WordPress 4.4 以降に含まれるインフラストラクチャ上に構築された、読み取り専用の REST エンドポイントが多数用意されています。
この記事では、REST API v1 をセットアップして使用し、AffiliateWP データにアクセスする方法を説明します。
REST API – 認証
コア REST エンドポイントを活用するには、すべての API コンシューマーは、アフィリエイト → ツール → API キー にある新しい API キー タブから生成された API キーを使用して認証する必要があります。
REST API は、公開キーとトークンの組み合わせによる基本的な認証を使用します。
API リクエストを認証する前に、API キーのセットが必要です。これらはユーザー固有であり、アフィリエイト → ツール → API キー で作成できます。

新しい API キーのセットを生成するには、キーが属するユーザーの名前を入力し、新しい API キーを生成 をクリックします。

注意: API キーが関連付けられているユーザーアカウントは、API が機能するために適切な権限を持っている必要があります。通常、これはユーザーに管理者 ロールが必要であることを意味します。詳細については、ロールと権限 に関するドキュメントを参照してください。
API キーが作成されたら、認証ヘッダーにキーを含めることで REST API で認証できます。公開キー はユーザーとして、トークン はパスワードとして渡される必要があります。
たとえば、Postman を使用する場合、認証されたリクエストは次のようになります。

curl を使用する場合、認証されたリクエストは次のようになります。
curl -u 229c1d4292800a4fdaa1099a4c646c9a:c7fd218923e058e1637698e5257855de http://local.wp/woo/wp-json/affwp/v1/affiliates
API と正しく認証するには、すべての API リクエストに認証ヘッダーを含める必要があります。基本的な認証が提供されていないか、資格情報が正しくない場合、エラーメッセージが返されます。
{
"code": "rest_forbidden",
"message": "Sorry, you are not allowed to do that.",
"data": {
"status": 403
}
}
ルートとエンドポイント
AffiliateWP は 5 つのルートと複数の下位エンドポイントを提供します。その 5 つのルートは次のとおりです。
上記のルート名をクリックすると、それぞれのエンドポイント、リクエスト例などの詳細を確認できます。
注意: 完全な作成、読み取り、更新、削除(CRUD)操作は、REST API 拡張アドオン を通じて有効にできます。作成、更新、削除操作については、REST API 拡張ドキュメント を参照してください。
1. アフィリエイト エンドポイント
AffiliateWP コア 1.9 以降では、アフィリエイト用の 2 つの読み取り専用 REST エンドポイントが提供されています。
- affiliates – 現在のサイトのすべてのアフィリエイトの応答オブジェクトを取得します
- affiliates/{ID} – 指定されたアフィリエイト ID を持つアフィリエイトの応答オブジェクトを取得します
アフィリエイト エンドポイントは、次の場所への GET リクエストでアクセスできます。
http://example.com/wp-json/affwp/v1/affiliates http://example.com/wp-json/affwp/v1/affiliates/ID
すべてのアフィリエイト エンドポイントとそのさまざまなオプションは、AffiliateWP REST 名前空間に直接アクセスすることでも検出できます。
http://example.com/wp-json/affwp/v1/
エンドポイント
affiliates エンドポイントは、有効な get_affiliates() 引数を受け付けます。
- number – 取得する結果の数(利用可能な場合)
- offset – クエリでスキップする結果の数。デフォルトは 0(オフセットなし)
- affiliate_id – クエリ対象のアフィリエイト ID または ID の配列。
- user_id – 支払い情報をクエリ対象とするユーザー ID または ID の配列。
- exclude – リクエストから除外するアフィリエイト ID または ID の配列。
- search – アフィリエイトを検索するための用語。アフィリエイト ID または文字列を受け付けます。
- status – アフィリエイトのステータス。「active」、「inactive」、「pending」、「rejected」のいずれかを受け付けます。
- order – 結果の並び順。 「ASC」(昇順)または「DESC」(降順)を受け付けます。
- orderby – レスポンス結果を並び替えるフィールド。デフォルトは「date」です。
- fields – レスポンス内の各アフィリエイトに対して返す特定のフィールド。デフォルトは「*」(すべて)です。「ids」または有効な列名を受け付けます。
追加の引数:
- user – user が true として渡された場合、レスポンス内の各アフィリエイトに対してカスタムユーザーオブジェクトがオンザフライで取得されます。各アフィリエイトに関連付けられるデータベースクエリが 1:1 で増加するため、このオプションを使用する際は注意が必要です。
- meta – true として渡された場合、レスポンス内の各アフィリエイトに対してアフィリエイトメタの配列がオンザフライで取得されます。user と同様に、パフォーマンスへの影響が低下するため注意が必要です。
すべての有効な引数は、いずれかのエンドポイントに OPTIONS リクエストを送信することでも取得できます。
affiliates/{ID} エンドポイントは、有効なアフィリエイト ID を受け付けます。さらに、user および/または meta が true として渡された場合、カスタムユーザーオブジェクトおよび/またはアフィリエイトメタの配列がそれぞれオンザフライで取得され、レスポンスに含まれます。
可視性
メインの affwp/v1 エンドポイントを除き、すべてのアンドポイントで API キーとトークンが必要です。
レスポンス
レスポンスは JSON 形式で返されます。
例:affiliates レスポンス:
[
{
"affiliate_id": 2736,
"user_id": 1336,
"rate": "",
"rate_type": "",
"payment_email": "",
"status": "active",
"earnings": 6,
"unpaid_earnings": 0,
"referrals": 6,
"visits": 0,
"date_registered": "2016-08-17 19:46:25",
"id": 2736
},
{
"affiliate_id": 2737,
"user_id": 1337,
"rate": "",
"rate_type": "",
"payment_email": "",
"status": "inactive",
"earnings": 1,
"unpaid_earnings": 3145.59,
"referrals": 1,
"visits": 0,
"date_registered": "2016-08-17 19:46:25",
"id": 2737
}
]
例:affiliates/{ID} レスポンス:
{
"affiliate_id": 2737,
"user_id": 1337,
"rate": "",
"rate_type": "",
"payment_email": "",
"status": "inactive",
"earnings": 1,
"unpaid_earnings": 3145.59,
"referrals": 1,
"visits": 0,
"date_registered": "2016-08-17 19:46:25"
}
例:affiliates{ID}?user=1 レスポンス:
{
"affiliate_id": 2737,
"user_id": 1337,
"rate": "",
"rate_type": "",
"payment_email": "",
"status": "inactive",
"earnings": 1,
"unpaid_earnings": 3145.59,
"referrals": 1,
"visits": 0,
"date_registered": "2016-08-17 19:46:25",
"user": {
"ID": "1337",
"user_login": "user_1_11",
"user_nicename": "user_1_11",
"user_url": "",
"user_registered": "2016-08-17 19:46:25",
"user_status": "0",
"display_name": "User 11",
"spam": "0",
"deleted": "0",
"first_name": "",
"last_name": ""
}
}
例:affiliates{ID}?meta=1 レスポンス:
{
"affiliate_id": 2737,
"user_id": 1337,
"rate": "",
"rate_type": "",
"payment_email": "[email protected]",
"status": "active",
"earnings": 32039.07,
"unpaid_earnings": 3145.59,
"referrals": 3192,
"visits": 0,
"date_registered": "2016-08-17 19:46:25",
"meta": {
"some_key": [
"some_value"
]
},
"id": 2737
}<br>
.
2. クリエイティブエンドポイント
AffiliateWP コア 1.9+ は、クリエイティブ用の 2 つの読み取り専用 REST エンドポイントを提供します。
- creatives – 現在のサイトのすべてのクリエイティブのレスポンスオブジェクトを取得します。
- creatives/{ID} – 指定されたクリエイティブ ID を持つクリエイティブのレスポンスオブジェクトを取得します。
クリエイティブエンドポイントは、以下の場所への GET リクエストでアクセスできます。
http://example.com/wp-json/affwp/v1/creatives http://example.com/wp-json/affwp/v1/creatives/ID
すべてのクリエイティブエンドポイントとその様々なオプションは、AffiliateWP REST名前空間を直接訪問することでも検出できます。
http://example.com/wp-json/affwp/v1/
エンドポイント
creatives エンドポイントは、有効なget_creatives()引数を受け入れます。
- number – 取得する結果の数(利用可能な場合)
- offset – クエリでスキップする結果の数。デフォルトは 0(オフセットなし)
- creative_id – クエリ対象のクリエイティブIDまたはIDの配列。
- status – クリエイティブのステータス。「active」または「inactive」を受け入れます。
- order – 結果の並び順。 「ASC」(昇順)または「DESC」(降順)を受け付けます。
- orderby – 並べ替え対象のクリエイティブテーブルの列。
- fields – レスポンスで各クリエイティブに対して返す特定のフィールド。デフォルトは「*」(すべて)。「ids」または有効な列を受け入れます。
すべての有効な引数は、いずれかのエンドポイントに OPTIONS リクエストを送信することでも取得できます。
creatives/{ID} エンドポイントは、有効なクリエイティブIDを受け入れます。
可視性
メインのaffwp/v1エンドポイントを除き、すべてエンドポイントでAPIキーとトークンが必要です。
レスポンス
レスポンスは JSON 形式で返されます。
例: creativesレスポンス:
{
"creative_id": 2,
"name": "My Other Creative",
"description": "",
"url": "http://affiliate.dev",
"text": "AffiliateWP Plugin Testing",
"image": "",
"status": "inactive",
"date": "2016-05-11 23:35:58",
"id": 2
},
{
"creative_id": 3,
"name": "Special Case",
"description": "",
"url": "http://affiliate.dev",
"text": "AffiliateWP Plugin Testing",
"image": "https://affwp.dev/wp-content/images/brand-assets/affiliatewp-1v.png",
"status": "active",
"date": "2016-05-11 23:43:02",
"id": 3
},
例:creatives/{ID}レスポンス:
{
"creative_id": 2,
"name": "My Other Creative",
"description": "",
"url": "http://affiliate.dev",
"text": "AffiliateWP Plugin Testing",
"image": "",
"status": "inactive",
"date": "2016-05-11 23:35:58",
"id": 2
}
.
3. 支払いエンドポイント
AffiliateWPコア1.9+は、支払い用の2つの読み取り専用RESTエンドポイントを提供します。
- payouts – 現在のサイトのすべての支払いに対するレスポンスオブジェクトを取得します。
- payouts/{ID} – 指定された支払いIDを持つ支払いに対するレスポンスオブジェクトを取得します。
支払いエンドポイントには、次の場所へのGETリクエストでアクセスできます。
http://example.com/wp-json/affwp/v1/payouts http://example.com/wp-json/affwp/v1/payouts/ID
すべての支払いエンドポイントとその様々なオプションは、AffiliateWP REST名前空間を直接訪問することでも検出できます。
http://example.com/wp-json/affwp/v1/
エンドポイント
payouts エンドポイントは、有効なget_payouts()引数を受け入れます。
- number – 取得する結果の数(利用可能な場合)
- offset – クエリでスキップする結果の数。デフォルトは 0(オフセットなし)
- payout_id – クエリ対象の支払いIDまたはIDの配列。
- affiliate_id – クエリ対象のアフィリエイトIDまたはIDの配列。
- referrals – 支払いを取得するための紹介IDまたは紹介IDの配列。
- amount – 支払い金額(float)または支払いを取得するための最小/最大範囲(配列)。
- amount_compare – amountで使用される比較演算子。「>」、「<」、「>=」、「<=」、「=」、または「!=」を受け入れます。
- status – 支払いステータス。「paid」または「failed」を受け入れます。
- date – クエリ対象の支払いの日付配列または文字列。
- order – 結果の並び順。 「ASC」(昇順)または「DESC」(降順)を受け付けます。
- orderby – レスポンス結果を並び替えるフィールド。デフォルトは「date」です。
- fields – レスポンスで各支払いに対して返す特定のフィールド。デフォルトは「*」(すべて)。「ids」または有効な列を受け入れます。
すべての有効な引数は、いずれかのエンドポイントに OPTIONS リクエストを送信することでも取得できます。
payouts/{ID} エンドポイントは、有効な支払いIDを受け入れます。
可視性
メインのaffwp/v1エンドポイントを除き、すべてエンドポイントでAPIキーとトークンが必要です。
レスポンス
レスポンスは JSON 形式で返されます。
例: payoutsレスポンス:
[
{
"payout_id": 1,
"affiliate_id": 22,
"referrals": "2,3",
"amount": 1,
"payout_method": "manual",
"status": "paid",
"date": "2016-08-04 16:54:21",
"owner": 0,
"id": 1
},
{
"payout_id": 2,
"affiliate_id": 22,
"referrals": "2,3",
"amount": 1,
"payout_method": "manual",
"status": "paid",
"date": "2016-08-04 16:54:24",
"owner": 0,
"id": 2
},
例:payouts/{ID}レスポンス:
{
"payout_id": 2,
"affiliate_id": 22,
"referrals": "2,3",
"amount": 1,
"payout_method": "manual",
"status": "paid",
"date": "2016-08-04 16:54:24",
"owner": 0,
"id": 2
}<br>
.
4. 紹介エンドポイント
AffiliateWPコア1.9+は、紹介用の2つの読み取り専用RESTエンドポイントを提供します。
- 紹介 – 現在のサイトのすべての紹介に対する応答オブジェクトを取得します
- 紹介/{ID} – 指定された紹介IDを持つ紹介に対する応答オブジェクトを取得します
紹介のエンドポイントには、次の場所でGETリクエストを介してアクセスできます。
http://example.com/wp-json/affwp/v1/referrals http://example.com/wp-json/affwp/v1/referrals/ID
すべての紹介のエンドポイントとそれらのさまざまなオプションは、AffiliateWP REST名前空間に直接アクセスすることでも検出できます。
http://example.com/wp-json/affwp/v1/
エンドポイント
紹介エンドポイントは、有効なget_referrals()引数を受け入れます。
- number – 取得する結果の数(利用可能な場合)
- offset – クエリでスキップする結果の数。デフォルトは 0(オフセットなし)
- 紹介ID – クエリする紹介IDまたはIDの配列。
- affiliate_id – クエリ対象のアフィリエイト ID または ID の配列。
- 参照 – 紹介の参照情報(製品ID)。
- ref_context – 紹介が作成されたコンテキスト(統合)。
- キャンペーン – 関連するキャンペーン。
- ステータス – 紹介のステータスまたはステータスの配列。‘paid’、‘unpaid’、‘pending’、または‘rejected’を受け入れます。
- order – 結果の並び順。 「ASC」(昇順)または「DESC」(降順)を受け付けます。
- orderby – レスポンス結果を並び替えるフィールド。デフォルトは「date」です。
- 検索 – 紹介IDまたは検索文字列。紹介をクエリします。
- 日付 – クエリする紹介の日付配列または文字列。
- フィールド – レスポンス内の各紹介に対して返す特定のフィールド。デフォルトは「*」(すべて)。「ids」または有効な列を受け入れます。
すべての有効な引数は、いずれかのエンドポイントに OPTIONS リクエストを送信することでも取得できます。
紹介/{ID}エンドポイントは、有効な紹介IDを受け入れます。
可視性
メインのaffwp/v1エンドポイントを除き、すべてエンドポイントでAPIキーとトークンが必要です。
レスポンス
レスポンスは JSON 形式で返されます。
例 紹介 レスポンス:
{
"referral_id": 21,
"affiliate_id": 0,
"visit_id": 0,
"description": "",
"status": "",
"amount": "",
"currency": "",
"custom": "",
"context": "",
"campaign": "",
"reference": "",
"products": "",
"date": "2016-08-17 19:57:30",
"payout_id": "102",
"id": 21
},
{
"referral_id": 22,
"affiliate_id": 2736,
"visit_id": 0,
"description": "",
"status": "paid",
"amount": "1.00",
"currency": "USD",
"custom": "",
"context": "",
"campaign": "",
"reference": "",
"products": "",
"date": "2016-08-17 19:57:43",
"payout_id": "81",
"id": 22
},
例紹介/{ID}レスポンス:
{
"referral_id": 21,
"affiliate_id": 0,
"visit_id": 0,
"description": "",
"status": "",
"amount": "",
"currency": "",
"custom": "",
"context": "",
"campaign": "",
"reference": "",
"products": "",
"date": "2016-08-17 19:57:30",
"payout_id": "102",
"id": 21
}
.
5. 訪問エンドポイント
AffiliateWPコア1.9+は、2つの読み取り専用RESTエンドポイントを提供します。
- 訪問 – 現在のサイトのすべての訪問に対する応答オブジェクトを取得します
- 訪問/{ID} – 指定された訪問IDを持つ訪問に対する応答オブジェクトを取得します
訪問のエンドポイントには、次の場所でGETリクエストを介してアクセスできます。
http://example.com/wp-json/affwp/v1/visits http://example.com/wp-json/affwp/v1/visits/ID
すべての訪問のエンドポイントとそれらのさまざまなオプションは、AffiliateWP REST名前空間に直接アクセスすることでも検出できます。
http://example.com/wp-json/affwp/v1/
エンドポイント
訪問エンドポイントは、有効なget_visits()引数を受け入れます。
- number – 取得する結果の数(利用可能な場合)
- offset – クエリでスキップする結果の数。デフォルトは 0(オフセットなし)
- 訪問ID – クエリする訪問IDまたはIDの配列。
- アフィリエイトID – クエリする訪問のアフィリエイトIDまたはIDの配列。
- 紹介ID – クエリする訪問の紹介IDまたはIDの配列。
- 紹介ステータス – 取得する訪問の紹介ステータスまたはステータスの配列。
- キャンペーン – 関連するキャンペーン。
- 順序 – レスポンスでの訪問の順序。デフォルトは「ASC」(昇順)です。
- orderby – レスポンス結果を並び替えるフィールド。デフォルトは「date」です。
- フィールド – レスポンス内の各訪問に対して返す特定のフィールド。デフォルトは「*」(すべて)。「ids」または有効な列を受け入れます。
すべての有効な引数は、いずれかのエンドポイントに OPTIONS リクエストを送信することでも取得できます。
訪問/{ID}エンドポイントは、有効な訪問IDを受け入れます。
可視性
メインのaffwp/v1エンドポイントを除き、すべてエンドポイントでAPIキーとトークンが必要です。
レスポンス
レスポンスは JSON 形式で返されます。
例: 訪問 レスポンス:
{
"visit_id": 1,
"affiliate_id": 5464,
"referral_id": 0,
"url": "http://google.com",
"referrer": "https://affiliatewp.com",
"campaign": "test",
"ip": "",
"date": "2016-09-20 21:58:09",
"id": 1
},
{
"visit_id": 2,
"affiliate_id": 5464,
"referral_id": 0,
"url": "http://google.com",
"referrer": "https://affiliatewp.com",
"campaign": "test",
"ip": "",
"date": "2016-09-18 21:58:11",
"id": 2
},
例:visits/{ID} レスポンス:
{
"visit_id": 2,
"affiliate_id": 5464,
"referral_id": 0,
"url": "http://google.com",
"referrer": "https://affiliatewp.com",
"campaign": "test",
"ip": "",
"date": "2016-09-18 21:58:11",
"id": 2
}
.