[ベータ版]{class="badge informative"}
API を使用した、Stripe アカウントからExperience Platformへの支払いデータの取り込み
Flow Service API を使用して Stripe からAdobe Experience Platformに支払いデータを取り込む方法については、次のチュートリアルをお読みください。
基本を学ぶ
このガイドは、Adobe Experience Platform の次のコンポーネントを実際に利用および理解しているユーザーを対象としています。
認証
認証資格情報の取得方法について詳しくは、Stripe 概要を参照してください。
Platform API の使用
Platform API を正常に呼び出す方法について詳しくは、Platform API の概要のガイドを参照してください。
Stripe をExperience Platformに接続
以下のガイドに従って、Stripe ソースの認証、ソース接続の作成、データフローの作成を行い、支払いデータをExperience Platformに取り込む方法を説明します。
ベース接続の作成 base-connection
ベース接続は、ソースとExperience Platform間の情報(ソースの認証資格情報、現在の接続状況、一意のベース接続 ID など)を保持します。 ベース接続 ID を使用して、ソース内からファイルを参照および移動できます。 さらに、データのタイプや形式の詳細など、取り込みたい特定の項目を指定することができます。
ベース接続 ID を作成するには、/connections
エンドポイントに対してPOSTリクエストを実行し、その際にリクエスト本文の一部として Stripe 認証資格情報を指定します。
API 形式
POST /connections
リクエスト
次のリクエストは、Stripe のベース接続を作成します。
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Stripe base connection",
"description": "Authenticated base connection for Stripe",
"connectionSpec": {
"id": "cc2c31d6-7b8c-4581-b49f-5c8698aa3ab3",
"version": "1.0"
},
"auth": {
"specName": "OAuth2 Refresh Code",
"params": {
"accessToken": "{ACCESS_TOKEN}",
}
}
}'
name
description
connectionSpec.id
cc2c31d6-7b8c-4581-b49f-5c8698aa3ab3
で、この ID は固定されています。auth.specName
auth.params.accessToken
応答
リクエストが成功した場合は、一意の接続識別子(id
)を含む、新しく作成されたベース接続が返されます。この ID は、次の手順でソースのファイル構造と内容を調べるために必要です。
{
"id": "a9950001-a386-4642-a0cd-5eaac6db5556",
"etag": "\"dc01244d-0000-0200-0000-65ea4e500000\""
}
ソースを参照 explore
ベース接続 ID を取得したら、ベース接続 ID をクエリパラメーターとして指定しながら /connections
エンドポイントに対してデータリクエストを実行することで、ソースGETの内容と構造を調べることができます。
API 形式
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=rest&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}&sourceParams={SOURCE_PARAMS}
リクエスト
ソースのファイル構造とコンテンツを調べるために GET リクエストを実行する場合、次の表に示すクエリのパラメーターを含める必要があります。
{BASE_CONNECTION_ID}
objectType=rest
rest
に設定されます。{OBJECT}
json
になります。fileType=json
json
のみです。{PREVIEW}
{SOURCE_PARAMS}
参照するリソースパスを指す Base64- エンコードされた文字列。 {SOURCE_PARAMS}
用に承認された形式を取得するには、リソースパスを Base64 でエンコードする必要があります。 例えば、{"resourcePath":"charges"}
は eyJyZXNvdXJjZVBhdGgiOiJjaGFyZ2VzIn0%3D
としてエンコードされます。 使用可能なリソースパスのリストを次に示します。
charges
subscriptions
refunds
balance_transactions
customers
prices
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/a9950001-a386-4642-a0cd-5eaac6db5556/explore?objectType=rest&object=json&fileType=json&preview=false&sourceParams=eyJyZXNvdXJjZVBhdGgiOiJjaGFyZ2VzIn0%3D' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
応答が成功すると、次のような JSON 構造が返されます。
code language-json |
---|
|
ソース接続の作成 source-connection
Flow Service API の /sourceConnections
エンドポイントに対して接続リクエストを実行することで、ソースPOSTを作成できます。 ソース接続は、接続 ID、ソースデータファイルへのパス、接続仕様 ID から構成されます。
API 形式
POST /sourceConnections
リクエスト
次のリクエストは、Stripe のソース接続を作成します。
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Stripe Source Connection For Charges Data",
"description": "Stripe source connection for charges data",
"baseConnectionId": "a9950001-a386-4642-a0cd-5eaac6db5556",
"connectionSpec": {
"id": "cc2c31d6-7b8c-4581-b49f-5c8698aa3ab3",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"resourcePath": "charges"
},
}'
name
description
baseConnectionId
connectionSpec.id
data.format
json
のみです。リクエストが成功した場合は、新たに作成されたソース接続の一意の ID(id
)が返されます。この ID は、後の手順でデータフローを作成する際に必要になります。
{
"id": "abbfac4e-202c-4e04-902d-6f73e9041068",
"etag": "\"0a033818-0000-0200-0000-65ea5a770000\""
}
ターゲット XDM スキーマの作成 target-schema
ソースデータをExperience Platformで使用するには、必要に応じてターゲットスキーマを作成してソースデータを構造化する必要があります。 次に、ターゲットスキーマを使用して、ソースデータが含まれる Platform データセットを作成します。
Schema Registry API に POST リクエストを実行することで、ターゲット XDM スキーマを作成できます。
ターゲット XDM スキーマの作成手順について詳しくは、 API を使用したスキーマの作成に関するチュートリアルを参照してください。
ターゲットデータセットの作成 target-dataset
Catalog Service API に POST リクエストを実行し、その際にペイロード内でターゲットスキーマの ID を指定することで、ターゲットデータセットを作成できます。
ターゲットデータセットの作成手順について詳しくは、 API を使用したデータセットの作成に関するチュートリアルを参照してください。
ターゲット接続の作成 target-connection
ターゲット接続は、取り込まれたデータが保存される宛先への接続を表します。 ターゲット接続を作成するには、データレイクに対応する固定接続仕様 ID を指定する必要があります。 この ID は c604ff05-7f1a-43c0-8e18-33bf874cb11c
です。
これで、一意の識別子、ターゲットスキーマ、ターゲットデータセット、およびデータレイクに対する接続仕様 ID が得られました。 これらの識別子を使用すると、受信ソースデータを格納するデータセットを指定する Flow Service API を使用して、ターゲット接続を作成することができます。
API 形式
POST /targetConnections
リクエスト
次のリクエストは、Stripe のターゲット接続を作成します。
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Stripe Target Connection For Charges Data",
"description": "Stripe target connection for charges data",
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
},
"data": {
"format": "parquet_xdm",
"schema": {
"id": "https://ns.adobe.com/{ORG_ID}/schemas/5f76be8c4e4b847fdac13ca42aa6b596a89a5b91dea48b16",
"version": "application/vnd.adobe.xed-full+json;version=1.3"
}
},
"params": {
"dataSetId": "65e622315f78042c9e8166e8"
}
}'
name
description
connectionSpec.id
c604ff05-7f1a-43c0-8e18-33bf874cb11c
です。data.format
params.dataSetId
応答
リクエストが成功した場合は、新しいターゲット接続の一意の ID(id
)が返されます。この ID は、後の手順で必要になります。
{
"id": "69879751-ba43-48df-8cd0-39d2bb76a5b8",
"etag": "\"4b02ef5b-0000-0200-0000-65ea5f730000\""
}
マッピングの作成 mapping
ソースデータをターゲットデータセットに取り込むには、まず、ターゲットデータセットが準拠するターゲットスキーマにマッピングする必要があります。これを実現するには、リクエストペイロード内で定義されたデータマッピングを使用して、Data Prep API に対して POST リクエストを実行します。
API 形式
POST /conversion/mappingSets
次のリクエストは、Stripe のマッピングを作成します。
code language-shell |
---|
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
---|---|
プロパティ | 説明 |
xdmSchema |
ターゲット XDM スキーマの ID。 この ID は、 ターゲット XDM スキーマを作成することで生成されます。 |
destinationXdmPath |
ソース属性がマッピングされている XDM フィールド。 |
sourceAttribute |
マッピングされるソースデータフィールド。 |
identity |
フィールドを ID サービスに保持するかどうかを定義するブール値。 |
version |
使用しているマッピングバージョン。 |
応答
リクエストが成功した場合は、一意の ID(id
)を含む、新しく作成されたマッピングの詳細が返されます。この値は、後の手順でデータフローを作成する際に必要になります。
{
"id": "f4aad280fdec4770b7e33066945919d8",
"version": 0,
"createdDate": 1709860257007,
"modifiedDate": 1709860257007,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
フローの作成 flow
Stripe から Platform にデータを取り込むための最後の手順は、データフローを作成することです。 現時点で、次の必要な値の準備ができています。
データフローは、ソースからデータをスケジュールおよび収集する役割を果たします。ペイロードに前述の値を提供しながら POST リクエストを実行することで、データフローを作成することができます。
API 形式
POST /flows
リクエスト
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Stripe Connector Flow Generic Rest",
"description": "Stripe Connector Description Flow Generic Rest",
"flowSpec": {
"id": "6499120c-0b15-42dc-936e-847ea3c24d72",
"version": "1.0"
},
"sourceConnectionIds": [
"abbfac4e-202c-4e04-902d-6f73e9041068"
],
"targetConnectionIds": [
"69879751-ba43-48df-8cd0-39d2bb76a5b8"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "f4aad280fdec4770b7e33066945919d8",
"mappingVersion": 0
}
}
],
"scheduleParams": {
"startTime": "1710267858",
"frequency": "minute",
"interval": {{interval}}
}
}'
name
description
flowSpec.id
6499120c-0b15-42dc-936e-847ea3c24d72
です。flowSpec.version
1.0
です。sourceConnectionIds
targetConnectionIds
transformations
transformations.name
transformations.params.mappingId
transformations.params.mappingVersion
0
です。scheduleParams.startTime
scheduleParams.frequency
データフローがデータを収集する頻度。取り込み頻度は、次のように設定できます。
- 1 回:頻度を
once
に設定して、1 回限りの取り込みを作成します。 1 回限りの取り込みデータフローを作成する場合、間隔とバックフィルの設定は使用できません。 デフォルトでは、スケジュールの頻度は 1 回に設定されています。 - 分:頻度を
minute
に設定して、1 分ごとにデータを取り込むようにデータフローをスケジュールします。 - 時間:頻度を
hour
に設定して、1 時間ごとにデータを取り込むようにデータフローをスケジュールします。 - 日:頻度を
day
に設定して、1 日にデータを取り込むようにデータフローをスケジュールします。 - 週:頻度を
week
に設定して、データフローが週ごとにデータを取り込むようにスケジュールします。
scheduleParams.interval
インターバルは 2 つの連続したフロー実行の間隔を指定します。例えば、頻度を日に設定し、間隔を 15 に設定すると、データフローは 15 日ごとに実行されます。 インターバルの値は 0 以外の整数にしてください。 各頻度で許容される最小のインターバル値は次のとおりです。
- 1 回:なし
- 分: 15
- 時間: 1
- 日: 1
- 週: 1
応答
正常な応答は、新しく作成したデータフローの ID(id
)を返します。この ID を使用して、データフローを監視、更新または削除できます。
{
"id": "84c64142-1741-4b0b-95a9-65644eba0cf6",
"etag": "\"3901770b-0000-0200-0000-655708970000\""
}
付録
次の節では、データフローの監視、更新、削除を行う手順について説明します。
データフローの監視
データフローが作成されると、それを通して取り込まれるデータを監視し、フローの実行状況、完了状況、エラーなどの情報を確認することができます。完全な API の例については、API を使用したソースデータフローのモニタリングに関するガイドを参照してください。
データフローの更新
データフローの ID を指定しながら Flow Service API の/flows エンドポイントにPATCHリクエストを実行することで、名前や説明、実行スケジュールや関連するマッピングセットなど、データフローの詳細を更新します。 データフローをリクエストする場合は、PATCHの一意の etag
を If-Match
ヘッダーで指定する必要があります。 完全な API の例については、API を使用したソースデータフローの更新に関するガイドを参照してください。
アカウントを更新
ベースPATCHID をクエリパラメーターとして指定して Flow Service API に接続リクエストを実行することで、ソースアカウントの名前、説明、資格情報を更新します。 PATCHリクエストを行う場合は、ソースアカウントの一意の etag
を If-Match
ヘッダーで指定する必要があります。 完全な API の例については、API を使用したソースアカウントの更新に関するガイドを参照してください。
データフローの削除
クエリパラメーターの一部として削除するデータフローの ID を指定したうえで Flow Service API に対してDELETEリクエストを実行することで、データフローを削除します。 完全な API の例については、API を使用したデータフローの削除に関するガイドを参照してください。
アカウントを削除
削除するアカウントのベースDELETEID を指定したうえで、Flow Service API に接続リクエストを実行してアカウントを削除します。 完全な API の例については、API を使用したソースアカウントの削除に関するガイドを参照してください。