会員データの一括ダウンロード
API を利用して会員データの一括ダウンロードを行うためのフェーズは以下の通りです。
| フェーズ | 説明 | 必要な処理 |
|---|---|---|
| 1 | 会員データをエクスポートする一括処理を開始します。 | POST /api/v1/export_members を呼び出します。 |
| 2 | 一括処理の進捗状況を確認します。 | POST /api/v1/get_batch_job_status を呼び出します。 |
| 3 | 作成されたダウンロードファイルを取得します。 | POST /api/v1/get_batch_job_result を呼び出します。 |
会員データのエクスポート
POST /api/v1/export_members を呼び出すと、会員データのエクスポート処理が開始され、バッチ処理 ID(整数値)が返されます。
| 引数 | データ型 | 説明 |
|---|---|---|
member_table_id | Integer | ダウンロード対象のデータベースID。 |
condition_id | Integer | 会員データの絞り込みに使う抽出条件ID。 |
columnset_id | Integer | 項目セットID。 |
is_csv | Boolean | trueでCSV形式、falseでTSV形式のファイルを作成します(省略可能、デフォルトは true)。 |
condition_id や columnset_id などの値は、管理画面の [会員データ] > [抽出条件管理] や [会員データ] > [項目セット管理] で確認できます。
すべての項目を含む項目セット「(全ての項目)」や、会員データベースのすべての会員を対象とする抽出条件「(全員)」は、 会員データベース作成時からデフォルトで利用できます。これらのIDは環境ごとに一意です。
- PHP
<?php
$environmentId = getenv("ENV_ID");
$exportApiUrl = "https://krs.bz/$environmentId/api/v1/export_members";
$apiToken = getenv("API_TOKEN");
$exportRequestData = [
'member_table_id' => 2,
'condition_id' => 5, // 例: 抽出条件ID: 5 に該当する会員を対象
'columnset_id' => 3, // 例: 項目セットID: 3 の項目を対象
'is_csv' => true, // CSV形式
];
$ch = curl_init($exportApiUrl);
// ... cURL オプション設定 ...
$response = curl_exec($ch);
// ... cURL 実行とエラーチェック ...
$batchJobId = json_decode($response, true);
echo "エクスポート処理を開始しました。 Batch Job ID: ", $batchJobId;
進捗状況の確認
インポート時と同様に POST /api/v1/get_batch_job_status API で進捗を確認します。progress が 100 になればファイルの準備は完了です。
ダウンロードファイルの取得
処理が完了したら、POST /api/v1/get_batch_job_result API を呼び出してファイルの中身を直接取得し、保存します。
- PHP
<?php
// ... 進捗確認ループの後 ...
$resultApiUrl = "https://krs.bz/$environmentId/api/v1/get_batch_job_result";
$resultRequestData = ['batch_job_id' => $batchJobId];
$ch = curl_init($resultApiUrl);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiToken,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($resultRequestData),
]);
$fileContent = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
file_put_contents('download_result.csv', $fileContent);
echo "ファイルをダウンロードしました: download_result.csv";
} else {
echo "ダウンロードに失敗しました: ", $fileContent;
}
変更があった会員データだけダウンロードしたい
基本的な流れは通常のダウンロードと同じですが、POST /api/v1/export_members を呼び出す際に、更新日時 を条件に設定した抽出条件の ID を指定します。
管理画面の [会員データ] > [抽出条件管理] で、「更新日時」が「データあり」となっている抽出条件を作成し、その ID を condition_id に指定してください。これにより、一度でも更新されたことがある会員データのみをエクスポートできます。