开始使用REST APIs
- 主题:
- API
- 请求参数: 除非另有指定,否则所有请求参数都是必需的。
- 请求标头:使用Adobe Developer令牌时,必须提供
x-api-key
标头。 您可以按照服务帐户集成页面中的说明获取API密钥。 - JSON内容类型: 在您的代码中指定
content-type: application/json
和accept: application/json
。 - 请求和响应: 将请求作为正确格式化的JSON对象发送。 Audience Manager使用JSON格式的数据进行响应。 服务器响应可以包含请求的数据、状态代码或同时包含这两者。
- 访问: 您的Audience Manager顾问将为您提供客户端ID和密钥,以便您发出API请求。
- 文档和代码示例: 斜体 中的文本 表示在生成或接收API数据时提供或传入的变量。 将 斜体 文本替换为您自己的代码、参数或其他必需的信息。
身份验证
Audience Manager REST APIs支持三种身份验证方法。
- 推荐使用Adobe开发人员控制台的OAuth服务器到服务器身份验证。 Adobe Developer是Adobe的开发人员生态系统和社区。 它包含所有Adobe产品🔗的API。 这是设置和使用Adobe APIs的推荐方法。 有关OAuth服务器到服务器身份验证的更多信息,请参阅Adobe开发人员文档。
- 已弃用使用Adobe开发人员控制台的JWT (服务帐户)身份验证。 Adobe Developer是Adobe的开发人员生态系统和社区。 它包含所有Adobe产品🔗的API。
- 已弃用旧版OAuth身份验证。 虽然此方法已弃用,但具有现有OAuth集成的客户可以继续使用此方法。
使用Adobe Developer的OAuth服务器到服务器身份验证
本节介绍如何收集所需的凭据来验证Audience ManagerAPI调用,如下面的流程图中所述。 您可以在初始一次性设置中收集大多数所需的凭据。 但是,必须每24小时刷新一次访问令牌。
Adobe Developer概述
Adobe Developer是Adobe的开发人员生态系统和社区。 它包含所有Adobe产品🔗的API。
这是设置和使用Adobe APIs的推荐方法。
先决条件
在配置OAuth Server-to-Server身份验证之前,请确保您有权访问Adobe Developer中的Adobe Developer Console。 有关访问请求,请联系您的组织管理员。
身份验证
请按照以下步骤使用Adobe Developer配置OAuth Server-to-Server身份验证:
- 登录到Adobe Developer Console。
- 按照OAuth服务器到服务器凭据实施指南中的步骤操作。
- 在步骤2:使用服务帐户身份验证将API添加到您的项目中,选择Audience Manager API选项。
- 根据步骤3中的说明进行第一个API调用以尝试连接。
将Audience ManagerAPI添加到项目
转到Adobe Developer Console并使用您的Adobe ID登录。 接下来,按照Adobe Developer Console文档中有关创建空项目的教程中概述的步骤进行操作。
创建新项目后,在 Project Overview 屏幕上选择 Add API。
突出显示了“添加API”选项的
出现 Add an API 屏幕。 选择Adobe Experience Cloud的产品图标,然后选择 Audience Manager API 再选择 Next。
选择OAuth服务器到服务器身份验证类型
接下来,选择身份验证类型以生成访问令牌并访问Audience ManagerAPI。
为您的集成选择产品配置文件
在 Configure API 屏幕中,选择所需的产品配置文件。 通过此处所选的产品配置文件,您的集成服务帐户将获得对精细功能的访问权限。
准备就绪后选择 Save configured API。
收集凭据
将API添加到项目后,项目的 Audience Manager API 页面会显示所有Audience ManagerAPI调用所需的以下凭据:
在Developer Console中添加API后的
{API_KEY}
(Client ID){ORG_ID}
(Organization ID)
生成访问令牌
下一步是生成用于Audience ManagerAPI调用的{ACCESS_TOKEN}
凭据。 与{API_KEY}
和{ORG_ID}
的值不同,必须每24小时生成一个新令牌才能继续使用Audience ManagerAPI。 选择 Generate access token,如下所示。
测试API调用
获取身份验证持有者令牌后,执行API调用以测试您现在是否可以访问Audience ManagerAPI。
curl -X 'GET' \
'https://api.demdex.com/v1/datasources/' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your-access-token'
使用有效的访问令牌时,API端点会返回200响应以及包含您的组织有权访问的所有全局数据源的响应正文。
[
{
"pid": 1794,
"name": "testdatasource1",
"description": "Test data source",
"status": "ACTIVE",
"integrationCode": "test_ds1",
"dataExportRestrictions": [],
"updateTime": 1595340792000,
"crUID": 0,
"upUID": 15910,
"linkNamespace": false,
"type": "GENERAL",
"subIdType": "CROSS_DEVICE_PERSON",
"inboundS2S": true,
"outboundS2S": true,
"useAudienceManagerVisitorID": false,
"allowDataSharing": true,
"masterDataSourceIdProvider": true,
"uniqueTraitIntegrationCodes": false,
"uniqueSegmentIntegrationCodes": false,
"marketingCloudVisitorIdVersion": 0,
"idType": "CROSS_DEVICE",
"samplingEndTime": 1596550392825,
"allowDeviceGraphSharing": false,
"supportsAuthenticatedProfile": true,
"deviceGraph": false,
"authenticatedProfileName": "testdatasource1",
"deviceGraphName": "",
"customNamespaceId": 29769,
"customNamespaceCode": "silviu_ds1",
"customerProfileDataRetention": 62208000,
"samplingStartTime": 1595340792825,
"dataSourceId": 29769,
"containerIds": [],
"samplingEnabled": false
},
{
"pid": 1794,
"name": "AAM Test Company Audiences",
"description": "Automatically generated trait data source",
"status": "ACTIVE",
"integrationCode": "adobe-provided",
"dataExportRestrictions": [
"PII"
],
[...]
已弃用使用Adobe Developer的JWT (Service Account)身份验证
Adobe Developer概述
Adobe Developer是Adobe的开发人员生态系统和社区。 它包含所有Adobe产品🔗的API。
这是设置和使用Adobe APIs的推荐方法。
先决条件
在配置JWT身份验证之前,请确保您有权访问Adobe Developer中的Adobe Developer Console。 有关访问请求,请联系您的组织管理员。
身份验证
请按照以下步骤使用Adobe Developer配置JWT (Service Account)身份验证:
- 登录到Adobe Developer Console。
- 按照服务帐户连接中的步骤操作。
- 在步骤2:使用服务帐户身份验证将API添加到您的项目中,选择Audience Manager API选项。
- 根据步骤3中的说明进行第一个API调用以尝试连接。
技术帐户RBAC权限
如果您的Audience Manager帐户使用基于角色的访问控制,则必须创建一个Audience Manager技术用户帐户,并将其添加到将进行API调用的Audience ManagerRBAC组。
按照以下步骤创建技术用户帐户并将其添加到RBAC组中:
-
对
https://aam.adobe.io/v1/users/self
进行GET
调用。 此调用将创建一个技术用户帐户,您可以在Admin Console的Users页面中看到该帐户。 -
登录到您的Audience Manager帐户,然后将技术用户帐户添加到将进行API调用的用户组。
已弃用OAuth身份验证(已弃用)
Audience Manager REST API遵循令牌身份验证和续订的OAuth 2.0标准。 以下各节介绍如何验证并开始使用API。
创建通用API用户
我们建议您创建一个单独的技术用户帐户来使用Audience Manager API。这是一个通用帐户,它与组织中的特定用户无关,也与特定用户关联。 此类型的API用户帐户可帮助您完成2件事:
- 识别正在调用API的服务(例如,来自使用我们API的应用或来自发出API请求的其他工具的调用)。
- 提供对API的无中断访问。与特定人员关联的帐户可能会在他们离开您的公司时删除。 这将阻止您使用可用的API代码。 不绑定到特定员工的通用帐户有助于避免此问题。
作为此类帐户的示例或用例,假设您希望使用批量管理工具一次更改多个区段。 为此,您的用户帐户需要API访问权限。 不要向特定用户添加权限,而是创建一个非特定的API用户帐户,该帐户具有进行API调用所需的相应凭据、密钥和密钥。 如果您开发自己的使用Audience Manager API的应用程序,这也很有用。
与您的Audience Manager顾问合作,设置一个通用、仅限API的用户帐户。
密码身份验证工作流
密码身份验证安全访问我们的REST API。 以下步骤概述了从浏览器中的JSON客户端进行密码身份验证的工作流。
步骤1:请求API访问权限
请联系您的合作伙伴解决方案经理。 他们将为您提供API客户端ID和密码。 ID和密码通过API验证您的身份。
注意:如果您希望接收刷新令牌,请在请求API访问权限时指定。
步骤2:请求令牌
向首选JSON客户端传递令牌请求。 构建请求时:
- 使用
POST
方法调用https://api.demdex.com/oauth/token
。 - 将您的客户端ID和密码转换为base-64编码字符串。 在转换过程中使用冒号分隔ID和密码。 例如,凭据
testId : testSecret
转换为dGVzdElkOnRlc3RTZWNyZXQ=
。 - 传入HTTP headers
Authorization:Basic <base-64 clientID:clientSecret>
和Content-Type: application/x-www-form-urlencoded
。 例如,您的标题可能如下所示:Authorization: Basic dGVzdElkOnRlc3RTZWNyZXQ=
Content-Type: application/x-www-form-urlencoded
- 按如下方式设置请求正文:
grant_type=password&username=<your-AudienceManager-user-name>&password=<your-AudienceManager-password>
步骤3:接收令牌
JSON响应包含您的访问令牌。 响应应如下所示:
{
"access_token": "28fed402-eafd-456c-9341-ac753f25bbbc",
"token_type": "bearer",
"refresh_token": "b27122c0-b0c7-4b39-a71b-1547a3b3b88e",
"expires_in": 21922,
"scope": "read write"
}
expires_in
键表示访问令牌过期前的秒数。 作为最佳实践,如果令牌被公开,请使用较短的过期时间以限制泄露。
刷新令牌
刷新令牌在原始令牌过期后续订API访问权限。 如果请求,密码工作流中的响应JSON将包含刷新令牌。 如果您没有收到刷新令牌,请通过密码身份验证过程创建一个新令牌。
您还可以使用刷新令牌在现有访问令牌过期之前生成新的令牌。
如果您的访问令牌已过期,则会在响应中接收401 Status Code
和以下标头:
WWW-Authenticate: Bearer realm="oauth", error="invalid_token", error_description="Access token expired: <token>"
以下步骤概述了使用刷新令牌从浏览器中的JSON客户端创建新的访问令牌的工作流。
步骤1:请求新令牌
向首选JSON客户端传入刷新令牌请求。 构建请求时:
- 使用
POST
方法调用https://api.demdex.com/oauth/token
。 - 将您的客户端ID和密码转换为base-64编码字符串。 在转换过程中使用冒号分隔ID和密码。 例如,凭据
testId : testSecret
转换为dGVzdElkOnRlc3RTZWNyZXQ=
。 - 传入HTTP标头
Authorization:Basic <base-64 clientID:clientSecret>
和Content-Type: application/x-www-form-urlencoded
。 例如,您的标题可能如下所示:Authorization: Basic dGVzdElkOnRlc3RTZWNyZXQ=
Content-Type: application/x-www-form-urlencoded
- 在请求正文中,指定
grant_type:refresh_token
并传入您在上一个访问请求中收到的刷新令牌。 请求应如下所示:grant_type=refresh_token&refresh_token=b27122c0-b0c7-4b39-a71b-1547a3b3b88e
步骤2:接收新令牌
JSON响应包含您的新访问令牌。 响应应如下所示:
{
"access_token": "4fdfc261-2ffc-4fb7-8dbd-64221714c45f",
"token_type": "bearer",
"refresh_token": "295fa487-1825-4caa-a715-80b81ac17dae",
"expires_in": 21922,
"scope": "read write"
}
授权代码和隐式身份验证
Audience Manager REST API支持授权代码和隐式身份验证。 若要使用这些访问方法,您的用户需要登录到https://api.demdex.com/oauth/authorize
以获取访问权杖并刷新令牌。
提出经过身份验证的API请求
收到身份验证令牌后调用API方法的要求。
要针对可用的API方法进行调用,请执行以下操作:
- 在
HTTP
标头中,设置Authorization: Bearer <token>
。 - 使用JWT(服务帐户)身份验证时,需要提供
x-api-key
标头,该标头将与您的client_id
相同。 您可以从Adobe Developer集成页面获取client_id
。 - 调用所需的API方法。
可选的API查询参数
设置可用于返回对象所有属性的方法的可选参数。
您可以将这些可选参数与API方法一起使用,这些方法返回对象的 所有 属性。 将查询传递到API时,在请求字符串中设置这些选项。
page
pageSize
sortBy
descending
ascending
是默认的。search
GET https://aam.adobe.io/v1/models/?search=Test
。 您可以搜索“get all”方法返回的任何值。folderId
permissions
根据指定的权限返回区段列表。 READ
是默认的。 权限包括:
READ
:返回并查看有关区段的信息。WRITE
:使用PUT
更新区段。CREATE
:使用POST
创建区段。DELETE
:删除区段。 需要访问基础特征(如果有)。 例如,如果要删除属于某个区段的特征,您需要拥有删除该区段的权限。
使用单独的键值对指定多个权限。 例如,要返回仅具有READ
和WRITE
权限的区段列表,请传入"permissions":"READ"
、"permissions":"WRITE"
。
includePermissions
true
以返回您对该区段的权限。 默认值为false
。有关页面选项的注释
未指定页面信息 时,请求返回数组中的纯JSON结果。 如果指定了页面信息**,则返回的列表将封装在包含有关总结果和当前页面信息的JSON对象中。 使用页面选项的示例请求可能如下所示:
GET https://aam.adobe.io/v1/models/?page=1&pageSize=2&search=Test
API URLs
请求、暂存和生产环境及版本的URLs。
请求URLs
下表按方法列出了用于传入API请求的请求URLs。
根据您使用的身份验证方法,您需要根据下表调整请求URLs。
为Recommended请求URLs{type=positive}已弃用通过Adobe Developer的JWT身份验证
https://aam.adobe.io/v1/models/
https://aam.adobe.io/v1/datasources/
https://aam.adobe.io/v1/signals/derived/
https://aam.adobe.io/v1/destinations/
https://aam.adobe.io/v1/partner-sites/
https://aam.adobe.io/v1/folders/traits /
区段:
https://aam.adobe.io/v1/folders/segments /
https://aam.adobe.io/v1/schemas/
https://aam.adobe.io/v1/segments/
https://aam.adobe.io/v1/traits/
https://aam.adobe.io/v1/customer-trait-types
https://aam.adobe.io/v1/taxonomies/0/
针对的请求URLs已弃用OAuth身份验证
https://api.demdex.com/v1/models/
https://api.demdex.com/v1/datasources/
https://api.demdex.com/v1/signals/derived/
https://api.demdex.com/v1/destinations/
https://api.demdex.com/v1/partner-sites/
https://api.demdex.com/v1/folders/traits /
区段:
https://api.demdex.com/v1/folders/segments /
https://api.demdex.com/v1/schemas/
https://api.demdex.com/v1/segments/
https://api.demdex.com/v1/traits/
https://api.demdex.com/v1/customer-trait-types
https://api.demdex.com/v1/taxonomies/0/
环境
Audience Manager API提供对不同工作环境的访问权限。 这些环境可帮助您针对单独的数据库测试代码,而不影响实时的生产数据。 下表列出了可用的API环境和相应的资源主机名。
根据您使用的身份验证方法,您需要根据下表调整环境URLs。
https://aam.adobe.io/...
https://api.demdex.com/...
https://aam-beta.adobe.io/...
https://api-beta.demdex.com/...
版本
这些API的新版本将定期发布。 新版本将增加API版本号。 请求URL中以v<version number>
的形式引用了版本号,如以下示例所示:
https://<host>/v1/...
定义的响应代码
Audience Manager REST API返回的HTTP
状态代码和响应文本。
200
OK
201
Created
PUT
和POST
请求。204
No Content
400
Bad Request
403
Forbidden
404
Not Found
409
Conflict
500
Server Error