Flow Service APIを使用した宛先接続の編集

このチュートリアルでは、宛先接続の様々なコンポーネントを編集する手順について説明します。 Flow Service APIを使用して、認証資格情報の更新や場所の書き出しを行う方法を説明します。

NOTE
このチュートリアルで説明する編集操作は、Experience Platform UIでもサポートされています。 詳しくは、UIで宛先を編集する方法に関するチュートリアルを参照してください。

はじめに get-started

このチュートリアルでは、有効なデータフローIDが必要です。 有効なデータフローIDがない場合は、このチュートリアルを試す前に、宛先カタログ ​から目的の宛先を選択し、宛先に接続および​ データをアクティブ化するための手順に従ってください。

NOTE
このチュートリアルでは、flow​と​ dataflow ​という用語が同じ意味で使用されています。 このチュートリアルのコンテキストでは、それらは同じ意味を持ちます。

このチュートリアルでは、Adobe Experience Platformの次のコンポーネントについて理解している必要もあります。

  • 宛先: Destinationsは、Adobe Experience Platformからのデータをシームレスにアクティブ化できる宛先プラットフォームとの事前定義済みの統合です。 宛先を使用して、クロスチャネルマーケティングキャンペーン、メールキャンペーン、ターゲット広告、その他多くの使用事例に関する既知および不明なデータをアクティブ化できます。
  • ​ サンドボックス ​: Experience Platformは、1つのExperience Platform インスタンスを個別のバーチャル環境に分割して、デジタルエクスペリエンスアプリケーションの開発と進化に役立つバーチャルサンドボックスを提供します。

以下の節では、Flow Service APIを使用してデータフローを正常に更新するために知っておく必要がある追加情報を示します。

API 呼び出し例の読み取り reading-sample-api-calls

このチュートリアルでは、API 呼び出しの例を提供し、リクエストの形式を設定する方法を示します。これには、パス、必須ヘッダー、適切な形式のリクエストペイロードが含まれます。また、API レスポンスで返されるサンプル JSON も示されています。ドキュメントで使用される API 呼び出し例の表記について詳しくは、Experience Platform トラブルシューテングガイドのAPI 呼び出し例の読み方に関する節を参照してください。

必須ヘッダーの値の収集 gather-values-for-required-headers

Experience Platform APIを呼び出すには、まず認証チュートリアル ​を完了する必要があります。 認証に関するチュートリアルを完了すると、すべての Experience Platform API 呼び出しで使用する、以下のような各必須ヘッダーの値が提供されます。

  • Authorization: Bearer {ACCESS_TOKEN}
  • x-api-key: {API_KEY}
  • x-gw-ims-org-id: {ORG_ID}

Flow Serviceに属するリソースを含むExperience Platformのすべてのリソースは、特定のバーチャルサンドボックスに分離されます。 Experience Platform APIへのすべてのリクエストには、操作を実行するサンドボックスの名前を指定するヘッダーが必要です。

  • x-sandbox-name: {SANDBOX_NAME}
NOTE
x-sandbox-name ヘッダーが指定されていない場合、リクエストはprod サンドボックスで解決されます。

ペイロード (POSTPUTPATCH)を含むすべてのリクエストには、追加のメディアタイプヘッダーが必要です。

  • Content-Type: application/json

データフローの詳細の検索 look-up-dataflow-details

宛先接続を編集する最初の手順は、フローIDを使用してデータフローの詳細を取得することです。 /flows エンドポイントに対して GET リクエストを実行することで、既存のデータフローの現在の詳細を表示できます。

TIP
Experience Platform UIを使用して、宛先の目的のデータフローIDを取得できます。 Destinations > Browse​に移動し、目的の宛先データフローを選択して、右側のパネルで宛先IDを見つけます。 宛先IDは、次の手順でフローIDとして使用する値です。
Experience Platform UI を使用して宛先IDを取得
recommendation-more-help

API 形式

GET /flows/{FLOW_ID}
パラメーター
説明
{FLOW_ID}
取得する宛先データフローの一意のid値。

リクエスト

次のリクエストは、フローIDに関する情報を取得します。

curl -X GET \
    'https://platform.adobe.io/data/foundation/flowservice/flows/226fb2e1-db69-4760-b67e-9e671e05abfc' \
    -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}'

応答

応答が成功すると、バージョン、一意の識別子(id)、およびその他の関連情報を含む、データフローの現在の詳細が返されます。 このチュートリアルに最も関連するのは、以下の応答で強調表示されているターゲット接続とベース接続IDです。 次の節では、これらのIDを使用して、宛先接続のさまざまなコンポーネントを更新します。

{
   "items":[
      {
         "id":"226fb2e1-db69-4760-b67e-9e671e05abfc",
         "createdAt":"{CREATED_AT}",
         "updatedAt":"{UPDATED_BY}",
         "createdBy":"{CREATED_BY}",
         "updatedBy":"{UPDATED_BY}",
         "createdClient":"{CREATED_CLIENT}",
         "updatedClient":"{UPDATED_CLIENT}",
         "sandboxId":"{SANDBOX_ID}",
         "sandboxName":"prod",
         "imsOrgId":"{ORG_ID}",
         "name":"2021 winter campaign",
         "description":"ACME company holiday campaign for high fidelity customers",
         "flowSpec":{
            "id":"71471eba-b620-49e4-90fd-23f1fa0174d8",
            "version":"1.0"
         },
         "state":"enabled",
         "version":"\"8b0351ca-0000-0200-0000-61c4d6700000\"",
         "etag":"\"8b0351ca-0000-0200-0000-61c4d6700000\"",
         "sourceConnectionIds":[
            "5e45582a-5336-4ea1-9ec9-d0004a9f344a"
         ],
         "targetConnectionIds":[
            "8ce3dc63-3766-4220-9f61-51d2f8f14618"
         ],
         "inheritedAttributes":{
            "sourceConnections":[
               {
                  "id":"5e45582a-5336-4ea1-9ec9-d0004a9f344a",
                  "connectionSpec":{
                     "id":"8a9c3494-9708-43d7-ae3f-cda01e5030e1",
                     "version":"1.0"
                  },
                  "baseConnection":{
                     "id":"0a82f29f-b457-47f7-bb30-33856e2ae5aa",
                     "connectionSpec":{
                        "id":"8a9c3494-9708-43d7-ae3f-cda01e5030e1",
                        "version":"1.0"
                     }
                  },
                  "typeInfo":{
                     "type":"ProfileFragments",
                     "id":"ups"
                  }
               }
            ],
            "targetConnections":[
               {
                  "id":"8ce3dc63-3766-4220-9f61-51d2f8f14618",
                  "connectionSpec":{
                     "id":"0b23e41a-cb4a-4321-a78f-3b654f5d7d97",
                     "version":"1.0"
                  },
                  "baseConnection":{
                     "id":"7fbf542b-83ed-498f-8838-8fde0c4d4d69",
                     "connectionSpec":{
                        "id":"0b23e41a-cb4a-4321-a78f-3b654f5d7d97",
                        "version":"1.0"
                     }
                  }
               }
            ]
         },
         "transformations":[
            "shortened for brevity"
         ]
      }
   ]

ターゲット接続コンポーネント(ストレージの場所およびその他のコンポーネント)の編集 patch-target-connection

ターゲット接続のコンポーネントは、宛先によって異なります。 例えば、Amazon S3の宛先の場合、ファイルが書き出されるバケットとパスを更新できます。 Pinterest宛先の場合はPinterest Advertiser IDを更新でき、Google Customer Matchの場合はPinterest Account IDを更新できます。

ターゲット接続のコンポーネントを更新するには、ターゲット接続ID、バージョン、および使用する新しい値を指定しながら、PATCH エンドポイントに/targetConnections/{TARGET_CONNECTION_ID} リクエストを実行します。 必要な宛先への既存のデータフローを検査した場合、前の手順でターゲット接続IDを取得したことを忘れないでください。

IMPORTANT
If-Match ヘッダーは、PATCH リクエストを行う際に必要です。 このヘッダーの値は、更新するターゲット接続の一意のバージョンです。 etag値は、データフロー、ターゲット接続などのフローエンティティが正常に更新されるたびに更新されます。
etag値の最新バージョンを取得するには、/targetConnections/{TARGET_CONNECTION_ID} エンドポイントに対してGET リクエストを実行します。{TARGET_CONNECTION_ID}は、更新する対象のコネクション IDです。
If-Match要求を行う際は、以下の例のように、PATCH ヘッダーの値を二重引用符で囲んでください。

以下に、様々なタイプの宛先に対して、ターゲット接続仕様のパラメーターを更新する例をいくつか示します。 ただし、宛先のパラメーターを更新する一般的なルールは次のとおりです。

接続のデータフローIDを取得/目的のパラメーターの値を更新してターゲット接続を取得> PATCH

API 形式

PATCH /targetConnections/{TARGET_CONNECTION_ID}
Amazon S3

リクエスト

次のリクエストは、bucketName宛先接続のpathおよびAmazon S3 パラメーターを更新します。

code language-shell
curl -X PATCH \
    'https://platform.adobe.io/data/foundation/flowservice/targetConnections/b2cb1407-3114-441c-87ea-2c1a3c84d0b0' \
    -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 'If-Match: "1a0037e4-0000-0200-0000-602e06f60000"' \
    -d '[
  {
    "op": "replace",
    "path": "/params",
    "value": {
      "bucketName": "newBucketName",
      "path": "updatedPath"
    }
  }
]'
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto
プロパティ 説明
op データフローの更新に必要なアクションを定義するために使用される操作呼び出し。操作には、addreplaceremove があります。
path 更新するフローの部分を定義します。
value パラメーターの更新に使用する新しい値。

応答

応答が成功すると、ターゲット接続IDと更新されたEtagが返されます。 ターゲット接続IDを指定しながら、Flow Service APIに対してGET リクエストを行うことで、更新を検証できます。

code language-json
{
    "id": "b2cb1407-3114-441c-87ea-2c1a3c84d0b0",
    "etag": "\"50014cc8-0000-0200-0000-6036eb720000\""
}
Google Ad ManagerとGoogle Ad Manager 360

リクエスト

次のリクエストは、Google Ad ManagerまたはGoogle Ad Manager 360 宛先接続のパラメーターを更新して、新しいAppend audience ID to audience name フィールドを追加します。

code language-shell
curl -X PATCH \
    'https://platform.adobe.io/data/foundation/flowservice/targetConnections/b2cb1407-3114-441c-87ea-2c1a3c84d0b0' \
    -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 'If-Match: "1a0037e4-0000-0200-0000-602e06f60000"' \
    -d '[
  {
    "op": "add",
    "path": "/params/appendSegmentId",
    "value": true
  }
]'
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto
プロパティ 説明
op データフローの更新に必要なアクションを定義するために使用される操作呼び出し。操作には、addreplaceremove があります。
path 更新するフローの部分を定義します。
value パラメーターの更新に使用する新しい値。

応答

応答が成功すると、ターゲット接続IDと更新されたタグが返されます。 ターゲット接続IDを指定しながら、Flow Service APIに対してGET リクエストを行うことで、更新を検証できます。

code language-json
{
    "id": "b2cb1407-3114-441c-87ea-2c1a3c84d0b0",
    "etag": "\"50014cc8-0000-0200-0000-6036eb720000\""
}
Pinterest

リクエスト

次のリクエストは、advertiserId宛先接続Pinterest の パラメーターを更新します。

code language-shell
curl -X PATCH \
    'https://platform.adobe.io/data/foundation/flowservice/targetConnections/b2cb1407-3114-441c-87ea-2c1a3c84d0b0' \
    -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 'If-Match: "1a0037e4-0000-0200-0000-602e06f60000"' \
    -d '[
  {
    "op": "replace",
    "path": "/params",
    "value": {
      "advertiser_id": "1234567890"
    }
  }
]'
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto
プロパティ 説明
op データフローの更新に必要なアクションを定義するために使用される操作呼び出し。操作には、addreplaceremove があります。
path 更新するフローの部分を定義します。
value パラメーターの更新に使用する新しい値。

応答

応答が成功すると、ターゲット接続IDと更新されたタグが返されます。 ターゲット接続IDを指定しながら、Flow Service APIに対してGET リクエストを行うことで、更新を検証できます。

code language-json
{
    "id": "b2cb1407-3114-441c-87ea-2c1a3c84d0b0",
    "etag": "\"50014cc8-0000-0200-0000-6036eb720000\""
}

ベース接続コンポーネント(認証パラメーターおよびその他のコンポーネント)の編集 patch-base-connection

宛先の資格情報を更新する場合は、ベース接続を編集します。 ベース接続のコンポーネントは、宛先によって異なります。 例えば、Amazon S3宛先の場合、アクセスキーと秘密鍵をAmazon S3の場所に更新できます。

ベース接続のコンポーネントを更新するには、ベース接続ID、バージョン、および使用する新しい値を指定しながら、PATCH エンドポイントに/connections リクエストを実行します。

パラメーターの目的の宛先に対する既存のデータフローを検査した場合、前の手順baseConnectionでベース接続IDを取得したことを忘れないでください。

IMPORTANT
If-Match ヘッダーは、PATCH リクエストを行う際に必要です。 このヘッダーの値は、更新するベース接続の一意のバージョンです。 etag値は、データフロー、ベース接続などのフローエンティティが正常に更新されるたびに更新されます。
Etag値の最新バージョンを取得するには、/connections/{BASE_CONNECTION_ID} エンドポイントに対してGET リクエストを実行します。ここで、{BASE_CONNECTION_ID}は、更新するベース接続IDです。
If-Match要求を行う際は、以下の例のように、PATCH ヘッダーの値を二重引用符で囲んでください。

以下に、様々なタイプの宛先に対するベース接続仕様のパラメーターの更新の例をいくつか示します。 ただし、宛先のパラメーターを更新する一般的なルールは次のとおりです。

接続のデータフローIDを取得/必要なパラメーターの値が更新されたベース接続でベース接続IDを取得> PATCH

API 形式

PATCH /connections/{BASE_CONNECTION_ID}
Amazon S3

リクエスト

次のリクエストは、accessId宛先接続のsecretKeyおよびAmazon S3 パラメーターを更新します。

code language-shell
curl -X PATCH \
    'https://platform.adobe.io/data/foundation/flowservice/targetConnections/b2cb1407-3114-441c-87ea-2c1a3c84d0b0' \
    -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 'If-Match: "1a0037e4-0000-0200-0000-602e06f60000"' \
    -d '[
  {
    "op": "add",
    "path": "/auth/params",
    "value": {
      "accessId": "exampleAccessId",
      "secretKey": "exampleSecretKey"
    }
  }
]'
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto
プロパティ 説明
op データフローの更新に必要なアクションを定義するために使用される操作呼び出し。操作には、addreplaceremove があります。
path 更新するフローの部分を定義します。
value パラメーターの更新に使用する新しい値。

応答

正常な応答では、ベース接続 ID と更新された etag が返されます。ベース接続IDを指定しながら、Flow Service APIに対してGET リクエストを行うことで、更新を検証できます。

code language-json
{
    "id": "b2cb1407-3114-441c-87ea-2c1a3c84d0b0",
    "etag": "\"50014cc8-0000-0200-0000-6036eb720000\""
}
Azure Blob

リクエスト

次のリクエストは、Azure Blob destination接続のパラメーターを更新して、Azure Blob インスタンスへの接続に必要な接続文字列を更新します。

code language-shell
curl -X PATCH \
    'https://platform.adobe.io/data/foundation/flowservice/targetConnections/b2cb1407-3114-441c-87ea-2c1a3c84d0b0' \
    -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 'If-Match: "1a0037e4-0000-0200-0000-602e06f60000"' \
    -d '[
  {
    "op": "add",
    "path": "/auth/params",
    "value": {
      "connectionString": "updatedString"
    }
  }
]'
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto
プロパティ 説明
op データフローの更新に必要なアクションを定義するために使用される操作呼び出し。操作には、addreplaceremove があります。
path 更新するフローの部分を定義します。
value パラメーターの更新に使用する新しい値。

応答

正常な応答では、ベース接続 ID と更新された etag が返されます。ベース接続IDを指定しながら、Flow Service APIに対してGET リクエストを行うことで、更新を検証できます。

code language-json
{
    "id": "b2cb1407-3114-441c-87ea-2c1a3c84d0b0",
    "etag": "\"50014cc8-0000-0200-0000-6036eb720000\""
}

API エラー処理 api-error-handling

このチュートリアルのAPI エンドポイントは、一般的なExperience Platform API エラーメッセージの原則に従っています。 エラー応答の解釈について詳しくは、Experience Platform トラブルシューティングガイドのAPI ステータスコード ​および​ リクエストヘッダーエラーを参照してください。

次の手順 next-steps

Flow Service APIを使用して、宛先接続の様々なコンポーネントを更新する方法を学習しました。 宛先について詳しくは、宛先の概要を参照してください。

7f4d1967-bf93-4dba-9789-bb6b505339d6