以下教程将指导您完成创建源连接和要引入的数据流的步骤 Mailchimp Members 使用将数据发送到平台 Flow Service API.
连接之前 Mailchimp 要使用OAuth 2刷新代码的Adobe Experience Platform,您必须首先检索您的访问令牌 MailChimp. 请参阅 Mailchimp OAuth 2指南 以获取有关查找访问令牌的详细说明。
一旦您恢复了 Mailchimp 身份验证凭据,您现在可以开始创建数据流以引入 Mailchimp Members 数据到Platform。 创建数据流的第一步是创建基本连接。
基本连接会保留源和平台之间的信息,包括源的身份验证凭据、连接的当前状态以及唯一的基本连接ID。 基本连接ID允许您浏览和浏览源中的文件,并标识要摄取的特定项目,包括有关其数据类型和格式的信息。
Mailchimp 支持基本身份验证和OAuth 2刷新代码。 有关如何使用任一身份验证类型进行身份验证的指导,请参阅以下示例。
创建 Mailchimp POST基本连接使用基本身份验证,向 /connections
端点 Flow Service API同时为提供凭据 authorizationTestUrl
, username
、和 password
.
API格式
POST /connections
请求
以下请求创建基本连接 Mailchimp:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "Mailchimp base connection with basic authentication",
"description": "Mailchimp Members base connection with basic authentication",
"connectionSpec": {
"id": "2e8580db-6489-4726-96de-e33f5f60295f",
"version": "1.0"
},
"auth": {
"specName": "Basic Authentication",
"params": {
"authorizationTestUrl": "https://login.mailchimp.com/oauth2/metadata",
"username": "{USERNAME}",
"password": "{PASSWORD}"
}
}
}'
属性 | 描述 |
---|---|
name |
基本连接的名称。 确保基本连接的名称是描述性的,因为您可以使用此名称查找基本连接上的信息。 |
description |
(可选)可包含的资产,用于提供有关基本连接的更多信息。 |
connectionSpec.id |
源的连接规范ID。 在您的源通过注册和批准后,可以检索此ID Flow Service API。 |
auth.specName |
用于将源连接到Platform的身份验证类型。 |
auth.params.authorizationTestUrl |
(可选)授权测试URL用于在创建基本连接时验证凭据。 如果未提供,则在源连接创建步骤期间将自动检查凭据。 |
auth.params.username |
与您的对应的用户名 Mailchimp 帐户。 这是基本身份验证所必需的。 |
auth.params.password |
与您的密码对应的密码 Mailchimp 帐户。 这是基本身份验证所必需的。 |
响应
成功响应将返回新创建的基本连接,包括其唯一连接标识符(id
)。 在下一步中浏览源的文件结构和内容时,需要此ID。
{
"id": "4cea039f-f1cc-4fa5-9136-db8dd4c7fbfa",
"etag": "\"4000cff7-0000-0200-0000-6154bad60000\""
}
创建 Mailchimp 基本连接使用OAuth 2刷新代码,向发出POST请求 /connections
为提供凭据时的端点 authorizationTestUrl
、和 accessToken
.
API格式
POST /connections
请求
以下请求创建基本连接 Mailchimp:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "MailChimp base connection with OAuth 2 refresh code",
"description": "MailChimp Members base connection with OAuth 2 refresh code",
"connectionSpec": {
"id": "2e8580db-6489-4726-96de-e33f5f60295f",
"version": "1.0"
},
"auth": {
"specName": "oAuth2RefreshCode",
"params": {
"authorizationTestUrl": "https://login.mailchimp.com/oauth2/metadata",
"accessToken": "{ACCESS_TOKEN}"
}
}
}'
属性 | 描述 |
---|---|
name |
基本连接的名称。 确保基本连接的名称是描述性的,因为您可以使用此名称查找基本连接上的信息。 |
description |
(可选)可包含的资产,用于提供有关基本连接的更多信息。 |
connectionSpec.id |
源的连接规范ID。 使用注册源后,可以检索此ID Flow Service API。 |
auth.specName |
用于向Platform验证源的身份验证类型。 |
auth.params.authorizationTestUrl |
(可选)授权测试URL用于在创建基本连接时验证凭据。 如果未提供,则在源连接创建步骤期间将自动检查凭据。 |
auth.params.accessToken |
用于对源进行身份验证的相应访问令牌。 基于OAuth的身份验证需要此项。 |
响应
成功响应将返回新创建的基本连接,包括其唯一连接标识符(id
)。 在下一步中浏览源的文件结构和内容时,需要此ID。
{
"id": "4cea039f-f1cc-4fa5-9136-db8dd4c7fbfa",
"etag": "\"4000cff7-0000-0200-0000-6154bad60000\""
}
使用上一步中生成的基本连接ID,您可以通过执行GET请求来浏览文件和目录。
检索接受的格式类型 {SOURCE_PARAMS}
,您必须编码整个 list_id
base64中的字符串。 例如, "list_id": "10c097ca71"
在base64中编码等于 eyJsaXN0SWQiOiIxMGMwOTdjYTcxIn0=
.
API格式
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=rest&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}&sourceParams={SOURCE_PARAMS}
执行GET请求以浏览源的文件结构和内容时,必须包括下表列出的查询参数:
参数 | 描述 |
---|---|
{BASE_CONNECTION_ID} |
上一步中生成的基本连接ID。 |
{OBJECT_TYPE} |
要浏览的对象的类型。 对于REST源,此值默认为 rest . |
{OBJECT} |
您希望探索的对象。 |
{FILE_TYPE} |
只有在查看特定目录时才需要此参数。 其值表示您希望浏览的目录的路径。 |
{PREVIEW} |
一个布尔值,定义连接的内容是否支持预览。 |
{SOURCE_PARAMS} |
的base64编码字符串 list_id . |
请求
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/05c595e5-edc3-45c8-90bb-fcf556b57c4b/explore?objectType=rest&object=json&fileType=json&preview=true&sourceParams=eyJsaXN0SWQiOiIxMGMwOTdjYTcxIn0=' \
-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}'
响应
成功响应将返回查询文件的结构。
{
"data": [
{
"list_id": "10c097ca71",
"_links": [
{
"rel": "self",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members",
"method": "GET",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/CollectionResponse.json",
"schema": "https://us6.api.mailchimp.com/schema/3.0/Paths/Lists/Members/Collection.json"
},
{
"rel": "parent",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71",
"method": "GET",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/Response.json"
},
{
"rel": "create",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members",
"method": "POST",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/Response.json",
"schema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/POST.json"
}
],
"members": [
{
"id": "cff65fb4c5f5828666ad846443720efd",
"email_address": "kendallt2134@gmail.com",
"unique_email_id": "72c758cbf1",
"contact_id": "874a0d6e9ddb89d8b4a31e416ead2d6f",
"full_name": "Kendall Roy",
"web_id": 547094062,
"email_type": "html",
"status": "subscribed",
"consents_to_one_to_one_messaging": true,
"merge_fields": {
"FNAME": "Kendall",
"LNAME": "Roy",
"ADDRESS": {
"country": "US"
}
},
"stats": {
"avg_open_rate": 0,
"avg_click_rate": 0
},
"ip_opt": "103.43.112.97",
"timestamp_opt": "2021-06-01T15:31:36+00:00",
"member_rating": 2,
"last_changed": "2021-06-01T15:31:36+00:00",
"vip": false,
"location": {
"latitude": 0,
"longitude": 0,
"gmtoff": 0,
"dstoff": 0
},
"source": "Admin Add",
"tags_count": 0,
"list_id": "10c097ca71",
"_links": [
{
"rel": "self",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members/cff65fb4c5f5828666ad846443720efd",
"method": "GET",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/Response.json"
},
{
"rel": "parent",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members",
"method": "GET",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/CollectionResponse.json",
"schema": "https://us6.api.mailchimp.com/schema/3.0/Paths/Lists/Members/Collection.json"
},
{
"rel": "update",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members/cff65fb4c5f5828666ad846443720efd",
"method": "PATCH",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/Response.json",
"schema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/PATCH.json"
},
{
"rel": "upsert",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members/cff65fb4c5f5828666ad846443720efd",
"method": "PUT",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/Response.json",
"schema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/PUT.json"
},
{
"rel": "delete",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members/cff65fb4c5f5828666ad846443720efd",
"method": "DELETE"
},
{
"rel": "activity",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members/cff65fb4c5f5828666ad846443720efd/activity",
"method": "GET",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/Activity/Response.json"
},
{
"rel": "goals",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members/cff65fb4c5f5828666ad846443720efd/goals",
"method": "GET",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/Goals/Response.json"
},
{
"rel": "notes",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members/cff65fb4c5f5828666ad846443720efd/notes",
"method": "GET",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/Notes/CollectionResponse.json"
},
{
"rel": "events",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members/cff65fb4c5f5828666ad846443720efd/events",
"method": "POST",
"targetSchema": "https://us6.api.mailchimp.com/schema/3.0/Definitions/Lists/Members/Events/POST.json"
},
{
"rel": "delete_permanent",
"href": "https://us6.api.mailchimp.com/3.0/lists/10c097ca71/members/cff65fb4c5f5828666ad846443720efd/actions/delete-permanent",
"method": "POST"
}
]
}
]
}
]
}
您可以通过对以下对象发出POST请求来创建源连接: Flow Service API。 源连接由连接ID、源数据文件的路径以及连接规范ID组成。
要创建源连接,还必须为数据格式属性定义一个枚举值。
为基于文件的源使用以下枚举值:
数据格式 | 枚举值 |
---|---|
已分隔 | delimited |
JSON | json |
Parquet | parquet |
对于所有基于表的源,将值设置为 tabular
.
API格式
POST /sourceConnections
请求
以下请求创建源连接 Mailchimp:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "MailChimp source connection to ingest listId",
"description": "MailChimp Members source connection to ingest listId",
"baseConnectionId": "4cea039f-f1cc-4fa5-9136-db8dd4c7fbfa",
"connectionSpec": {
"id": "2e8580db-6489-4726-96de-e33f5f60295f",
"version": "1.0"
},
"data": {
"format": "json",
},
"params": {
"listId": "10c097ca71"
}
}'
属性 | 描述 |
---|---|
name |
源连接的名称。 确保源连接的名称是描述性的,因为您可以使用此名称查找源连接的信息。 |
description |
(可选)可包含的属性,用于提供有关源连接的更多信息。 |
baseConnectionId |
的基本连接ID Mailchimp. 此ID是在前面的步骤中生成的。 |
connectionSpec.id |
与源对应的连接规范ID。 |
data.format |
的格式 Mailchimp 要摄取的数据。 |
params.listId |
也称为受众ID, Mailchimp 列表ID允许将受众数据传输到其他集成。 |
响应
成功响应将返回唯一标识符(id
)。 此ID在后续步骤中是创建数据流所必需的。
{
"id": "a51e4cf6-65ef-45f4-b4bf-4f03da5f01cc",
"etag": "\"6b02b65d-0000-0200-0000-6154bfbe0000\""
}
为了在Platform中使用源数据,必须创建一个目标架构,以根据您的需求构建源数据。 然后,使用目标架构创建包含源数据的Platform数据集。
可以通过向以下对象执行POST请求来创建目标XDM架构 架构注册表API.
有关如何创建目标XDM架构的详细步骤,请参阅关于的教程 使用API创建架构.
可以通过向执行POST请求来创建目标数据集 目录服务API,在有效负载中提供目标架构的ID。
有关如何创建目标数据集的详细步骤,请参阅关于的教程 使用API创建数据集.
目标连接表示与所摄取数据所登陆的目标之间的连接。 要创建目标连接,您必须提供对应于目标连接的固定连接规范ID。 Data Lake. 此ID为: c604ff05-7f1a-43c0-8e18-33bf874cb11c
.
现在,目标架构和目标数据集的连接规范ID均为唯一标识符 Data Lake. 使用这些标识符,您可以使用 Flow Service 用于指定将包含入站源数据的数据集的API。
API格式
POST /targetConnections
请求
以下请求创建目标连接 Mailchimp:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "MailChimp target connection",
"description": "MailChimp Members target connection",
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
},
"data": {
"format": "parquet_xdm",
"schema": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/570630b91eb9d5cf5db0436756abb110d02912917a67da2d",
"version": "application/vnd.adobe.xed-full+json;version=1"
}
},
"params": {
"dataSetId": "6155e3a9bd13651949515f14"
}
}'
属性 | 描述 |
---|---|
name |
目标连接的名称。 确保目标连接的名称是描述性的,因为您可以使用此名称查找有关目标连接的信息。 |
description |
(可选)可包含的资产,用于提供有关目标连接的更多信息。 |
connectionSpec.id |
与对应的连接规范ID Data Lake. 此固定ID为: c604ff05-7f1a-43c0-8e18-33bf874cb11c . |
data.format |
的格式 Mailchimp 要带到Platform的数据。 |
params.dataSetId |
在上一步中检索的目标数据集ID。 |
响应
成功响应将返回新目标连接的唯一标识符(id
)。 此ID在后续步骤中是必需的。
{
"id": "8db5fb4a-6ce8-4370-afc0-1765e39535a5",
"etag": "\"960093ce-0000-0200-0000-6154da3e0000\""
}
为了将源数据引入目标数据集,必须首先将其映射到目标数据集所遵循的目标架构。 POST这是通过对 Data Prep API 在请求有效负载中定义数据映射。
API格式
POST /conversion/mappingSets
请求
curl -X POST \
'https://platform.adobe.io/data/foundation/conversion/mappingSets' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"version": 0,
"xdmSchema": "_{TENANT_ID}.schemas.570630b91eb9d5cf5db0436756abb110d02912917a67da2d",
"xdmVersion": "1.0",
"mappings": [
{
"destinationXdmPath": "person.name.firstName",
"sourceAttribute": "merge_fields.FNAME",
"identity": false,
"version": 0
},
{
"destinationXdmPath": "person.name.lastName",
"sourceAttribute": "merge_fields.LNAME",
"identity": false,
"version": 0
}
]
}'
属性 | 描述 |
---|---|
xdmSchema |
的ID 目标XDM架构 在之前的步骤中生成。 |
mappings.destinationXdmPath |
源属性将映射到的目标XDM路径。 |
mappings.sourceAttribute |
需要映射到目标XDM路径的源属性。 |
mappings.identity |
一个布尔值,指定是否将映射集标记为 Identity Service. |
响应
成功响应将返回新创建映射的详细信息,包括其唯一标识符(id
)。 在后续步骤中需要使用此值来创建数据流。
{
"id": "5a365b23962d4653b9d9be25832ee5b4",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
实现以下目标的最后一步: Mailchimp 数据到Platform就是创建一个数据流。 现在,您已准备以下必需值:
数据流负责从源中计划和收集数据。 您可以通过在有效负载中提供上述值时执行POST请求来创建数据流。
要计划摄取,您必须先将开始时间值设置为纪元时间(以秒为单位)。 然后,必须将频率值设置为五个选项之一: once
, minute
, hour
, day
,或 week
. 间隔值用于指定两次连续摄取之间的时间段,创建一次性摄取不需要设置间隔。 对于所有其他频率,间隔值必须设置为等于或大于 15
.
API格式
POST /flows
请求
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "MailChimp Members dataflow",
"description": "MailChimp Members dataflow",
"flowSpec": {
"id": "6499120c-0b15-42dc-936e-847ea3c24d72",
"version": "1.0"
},
"sourceConnectionIds": [
"a51e4cf6-65ef-45f4-b4bf-4f03da5f01cc"
],
"targetConnectionIds": [
"8db5fb4a-6ce8-4370-afc0-1765e39535a5"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "5a365b23962d4653b9d9be25832ee5b4",
"mappingVersion": 0
}
}
],
"scheduleParams": {
"startTime": "1632809759",
"frequency": "minute",
"interval": 15
}
}'
属性 | 描述 |
---|---|
name |
数据流的名称。 确保数据流的名称是描述性的,因为您可以使用此名称查找数据流上的信息。 |
description |
(可选)可包含的属性,用于提供有关数据流的更多信息。 |
flowSpec.id |
创建数据流所需的流规范ID。 此固定ID为: 6499120c-0b15-42dc-936e-847ea3c24d72 . |
flowSpec.version |
流规范ID的相应版本。 此值默认为 1.0 . |
sourceConnectionIds |
此 源连接ID 在之前的步骤中生成。 |
targetConnectionIds |
此 目标连接Id 在之前的步骤中生成。 |
transformations |
此属性包含需要应用于数据的各种转换。 将不符合XDM的数据引入到Platform时需要此属性。 |
transformations.name |
分配给转换的名称。 |
transformations.params.mappingId |
此 映射Id 在之前的步骤中生成。 |
transformations.params.mappingVersion |
映射ID的相应版本。 此值默认为 0 . |
scheduleParams.startTime |
第一次引入数据时的指定开始时间。 |
scheduleParams.frequency |
数据流收集数据的频率。 可接受的值包括: once , minute , hour , day ,或 week . |
scheduleParams.interval |
间隔指定两次连续流运行之间的周期。 间隔值应为非零整数。 当频率设置为时,不需要间隔 once 和应大于或等于 15 其他频率值。 |
响应
成功的响应会返回ID (id
)。 您可以使用此ID监视、更新或删除数据流。
{
"id": "209812ad-7bef-430c-b5b2-a648aae72094",
"etag": "\"2e01f11d-0000-0200-0000-615649660000\""
}
以下部分提供了有关监视、更新和删除数据流的步骤的信息。
创建数据流后,您可以监视通过它摄取的数据,以查看有关流运行、完成状态和错误的信息。 有关完整的API示例,请阅读以下指南: 使用API监控源数据流.
通过向发出PATCH请求,更新数据流的详细信息,例如其名称和描述,以及其运行计划和关联的映射集。 /flows
端点 Flow Service API,同时提供数据流的ID。 发出PATCH请求时,必须提供数据流的唯一值 etag
在 If-Match
标头。 有关完整的API示例,请阅读以下指南: 使用API更新源数据流.
PATCH通过向 Flow Service API,同时将基本连接ID作为查询参数提供。 在提出PATCH请求时,您必须提供源帐户的唯一 etag
在 If-Match
标头。 有关完整的API示例,请阅读以下指南: 使用API更新源帐户.
通过向以下对象执行DELETE请求来删除您的数据流: Flow Service API,以便在查询参数中提供要删除的数据流的ID。 有关完整的API示例,请阅读以下指南: 使用API删除数据流.
向以下人员发出DELETE请求以删除您的帐户: Flow Service 提供要删除的帐户的基本连接ID时的API。 有关完整的API示例,请阅读以下指南: 使用API删除源帐户.