开始使用REST APIs getting-started-with-rest-apis
有关一般要求、身份验证、可选查询参数、请求URLs和其他引用的信息。
API要求和Recommendations api-requirements-recommendations
使用Audience ManagerAPI代码时,请注意以下事项:
- 请求参数: 除非另有指定,否则所有请求参数都是必需的。
- 请求标头:使用Adobe Developer令牌时,必须提供
x-api-key
标头。 您可以按照服务帐户集成页面中的说明获取API密钥。 - JSON内容类型: 在您的代码中指定
content-type: application/json
和accept: application/json
。 - 请求和响应: 将请求作为正确格式化的JSON对象发送。 Audience Manager使用JSON格式的数据进行响应。 服务器响应可以包含请求的数据、状态代码或同时包含这两者。
- 访问: 您的Audience Manager顾问将为您提供客户端ID和密钥,以便您发出API请求。
- 文档和代码示例: 斜体 中的文本 表示在生成或接收API数据时提供或传入的变量。 将 斜体 文本替换为您自己的代码、参数或其他必需的信息。
身份验证 authentication
Audience Manager REST APIs支持三种身份验证方法。
- [推荐]{class="badge positive"}使用Adobe开发人员控制台的OAuth服务器到服务器身份验证。 Adobe Developer是Adobe的开发人员生态系统和社区。 它包含所有Adobe产品🔗的API。 这是设置和使用Adobe APIs的推荐方法。 有关OAuth服务器到服务器身份验证的更多信息,请参阅Adobe开发人员文档。
- [已弃用]{class="badge negative"}使用Adobe开发人员控制台的JWT (服务帐户)身份验证。 Adobe Developer是Adobe的开发人员生态系统和社区。 它包含所有Adobe产品🔗的API。
- [已弃用]{class="badge negative"}旧版OAuth身份验证。 虽然此方法已弃用,但具有现有OAuth集成的客户可以继续使用此方法。
使用Adobe Developer的OAuth服务器到服务器身份验证 oauth-adobe-developer
本节介绍如何收集所需的凭据来验证Audience ManagerAPI调用,如下面的流程图中所述。 您可以在初始一次性设置中收集大多数所需的凭据。 但是,必须每24小时刷新一次访问令牌。
Adobe Developer概述 developer-overview
Adobe Developer是Adobe的开发人员生态系统和社区。 它包含所有Adobe产品🔗的API。
这是设置和使用Adobe APIs的推荐方法。
先决条件 prerequisites-server-to-server
在配置OAuth Server-to-Server身份验证之前,请确保您有权访问Adobe Developer中的Adobe Developer Console。 有关访问请求,请联系您的组织管理员。
身份验证 oauth
请按照以下步骤使用Adobe Developer配置OAuth Server-to-Server身份验证:
- 登录到Adobe Developer Console。
- 按照OAuth服务器到服务器凭据实施指南中的步骤操作。
- 在步骤2:使用服务帐户身份验证将API添加到您的项目中,选择Audience Manager API选项。
- 根据步骤3中的说明进行第一个API调用以尝试连接。
将Audience ManagerAPI添加到项目 add-aam-api-to-project
转到Adobe Developer Console并使用您的Adobe ID登录。 接下来,按照Adobe Developer Console文档中有关创建空项目的教程中概述的步骤进行操作。
创建新项目后,在 Project Overview 屏幕上选择 Add API。
突出显示了“添加API”选项的
出现 Add an API 屏幕。 选择Adobe Experience Cloud的产品图标,然后选择 Audience Manager API 再选择 Next。
选择OAuth服务器到服务器身份验证类型 select-oauth-server-to-server
接下来,选择身份验证类型以生成访问令牌并访问Audience ManagerAPI。
为您的集成选择产品配置文件 select-product-profiles
在 Configure API 屏幕中,选择所需的产品配置文件。 通过此处所选的产品配置文件,您的集成服务帐户将获得对精细功能的访问权限。
准备就绪后选择 Save configured API。
收集凭据 gather-credentials
将API添加到项目后,项目的 Audience Manager API 页面会显示所有Audience ManagerAPI调用所需的以下凭据:
在Developer Console中添加API后的
{API_KEY}
(Client ID){ORG_ID}
(Organization ID)
生成访问令牌 generate-access-token
下一步是生成用于Audience ManagerAPI调用的{ACCESS_TOKEN}
凭据。 与{API_KEY}
和{ORG_ID}
的值不同,必须每24小时生成一个新令牌才能继续使用Audience ManagerAPI。 选择 Generate access token,如下所示。
测试API调用 test-api-call
获取身份验证持有者令牌后,执行API调用以测试您现在是否可以访问Audience ManagerAPI。
code language-shell |
---|
|
使用有效的访问令牌时,API端点会返回200响应以及包含您的组织有权访问的所有全局数据源的响应正文。
code language-json |
---|
|
[已弃用]{class="badge negative"}使用Adobe Developer的JWT (Service Account)身份验证 jwt
Adobe Developer概述 adobeio
Adobe Developer是Adobe的开发人员生态系统和社区。 它包含所有Adobe产品🔗的API。
这是设置和使用Adobe APIs的推荐方法。
先决条件 prerequisites
在配置JWT身份验证之前,请确保您有权访问Adobe Developer中的Adobe Developer Console。 有关访问请求,请联系您的组织管理员。
身份验证 auth
请按照以下步骤使用Adobe Developer配置JWT (Service Account)身份验证:
- 登录到Adobe Developer Console。
- 按照服务帐户连接中的步骤操作。
- 在步骤2:使用服务帐户身份验证将API添加到您的项目中,选择Audience Manager API选项。
- 根据步骤3中的说明进行第一个API调用以尝试连接。
note note |
---|
NOTE |
要自动配置和使用Audience Manager REST APIs,您可以通过编程方式生成JWT。 有关详细说明,请参阅JWT(服务帐户)身份验证。 |
技术帐户RBAC权限
如果您的Audience Manager帐户使用基于角色的访问控制,则必须创建一个Audience Manager技术用户帐户,并将其添加到将进行API调用的Audience ManagerRBAC组。
按照以下步骤创建技术用户帐户并将其添加到RBAC组中:
-
对
https://aam.adobe.io/v1/users/self
进行GET
调用。 此调用将创建一个技术用户帐户,您可以在Admin Console的Users页面中看到该帐户。 -
登录到您的Audience Manager帐户,然后将技术用户帐户添加到将进行API调用的用户组。
[已弃用]{class="badge negative"}OAuth身份验证(已弃用) oauth-deprecated
note warning |
---|
WARNING |
Audience Manager REST API令牌身份验证和通过OAuth 2.0续订现在已被弃用。 |
请改用JWT(服务帐户)身份验证。 |
Audience Manager REST API遵循令牌身份验证和续订的OAuth 2.0标准。 以下各节介绍如何验证并开始使用API。
创建通用API用户 requirements
我们建议您创建一个单独的技术用户帐户来使用Audience Manager API。这是一个通用帐户,它与组织中的特定用户无关,也与特定用户关联。 此类型的API用户帐户可帮助您完成2件事:
- 识别正在调用API的服务(例如,来自使用我们API的应用或来自发出API请求的其他工具的调用)。
- 提供对API的无中断访问。与特定人员关联的帐户可能会在他们离开您的公司时删除。 这将阻止您使用可用的API代码。 不绑定到特定员工的通用帐户有助于避免此问题。
作为此类帐户的示例或用例,假设您希望使用批量管理工具一次更改多个区段。 为此,您的用户帐户需要API访问权限。 不要向特定用户添加权限,而是创建一个非特定的API用户帐户,该帐户具有进行API调用所需的相应凭据、密钥和密钥。 如果您开发自己的使用Audience Manager API的应用程序,这也很有用。
与您的Audience Manager顾问合作,设置一个通用、仅限API的用户帐户。
密码身份验证工作流 password-authentication-workflow
密码身份验证安全访问我们的REST API。 以下步骤概述了从浏览器中的JSON客户端进行密码身份验证的工作流。
note tip |
---|
TIP |
如果您将令牌存储在数据库中,则加密访问和刷新令牌。 |
步骤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响应包含您的访问令牌。 响应应如下所示:
code language-json |
---|
|
expires_in
键表示访问令牌过期前的秒数。 作为最佳实践,如果令牌被公开,请使用较短的过期时间以限制泄露。
刷新令牌 refresh-token
刷新令牌在原始令牌过期后续订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响应包含您的新访问令牌。 响应应如下所示:
code language-json |
---|
|
授权代码和隐式身份验证 authentication-code-implicit
Audience Manager REST API支持授权代码和隐式身份验证。 若要使用这些访问方法,您的用户需要登录到https://api.demdex.com/oauth/authorize
以获取访问权杖并刷新令牌。
提出经过身份验证的API请求 authenticated-api-requests
收到身份验证令牌后调用API方法的要求。
要针对可用的API方法进行调用,请执行以下操作:
- 在
HTTP
标头中,设置Authorization: Bearer <token>
。 - 使用JWT(服务帐户)身份验证时,需要提供
x-api-key
标头,该标头将与您的client_id
相同。 您可以从Adobe Developer集成页面获取client_id
。 - 调用所需的API方法。
可选的API查询参数 optional-api-query-parameters
设置可用于返回对象所有属性的方法的可选参数。
您可以将这些可选参数与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 api-urls
请求、暂存和生产环境及版本的URLs。
请求URLs request-urls
下表按方法列出了用于传入API请求的请求URLs。
根据您使用的身份验证方法,您需要根据下表调整请求URLs。
为[Recommended]{class="badge informative"}请求URLs{type=positive}[已弃用]{class="badge negative"}通过Adobe Developer的JWT身份验证 request-urls-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已弃用]{class="badge negative"}OAuth身份验证 request-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/
环境 environments
Audience Manager API提供对不同工作环境的访问权限。 这些环境可帮助您针对单独的数据库测试代码,而不影响实时的生产数据。 下表列出了可用的API环境和相应的资源主机名。
根据您使用的身份验证方法,您需要根据下表调整环境URLs。
https://aam.adobe.io/...
https://api.demdex.com/...
https://aam-beta.adobe.io/...
https://api-beta.demdex.com/...
版本 versions
这些API的新版本将定期发布。 新版本将增加API版本号。 请求URL中以v<version number>
的形式引用了版本号,如以下示例所示:
https://<host>/v1/...
定义的响应代码 response-codes-defined
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