若要设置和运行 REST API,请将一些基本请求发送到 Salesforce的。本快速入门介绍了如何设置基本环境和更新记录 使用 REST API。您可以通过多种方式设置和使用 REST API,示例演示了如何使用 免费的 Developer Edition 和 cURL。
- 使用 cURL 了解可与 cURL
一起使用以向 Salesforce 发出请求的格式。此 Quick Start 使用 cURL 示例,但您可以使用任何可以发出 REST 请求的工具或开发环境。 - 第一步:注册 Salesforce Developer Edition Developer Edition
提供了一个免费且简单的解决方案,以便您可以使用 Salesforce 进行测试和开发。 - 第二步:设置身份验证
若要成功发送请求,REST API 需要通过身份验证获取的访问令牌。虽然您可以针对自己的连接应用程序创建和进行身份验证,但为了方便起见,这些快速入门示例使用 Salesforce CLI。Salesforce CLI 是一个可以进行身份验证的连接应用程序,无需进行任何配置。 - 第三步:演练示例代码
要访问 Salesforce 中不同类型的资源,请发出一系列 REST 请求。在尝试这些示例之前,请确保完成先决条件并获取本快速入门的步骤 1 中的访问令牌。 - 使用其他工具 其他工具
可用于从 Salesforce 组织获取数据。
使用 cURL
了解可用于 cURL 向 Salesforce 发出请求的格式。 此 Quick Start 使用 cURL 示例,但您可以使用任何工具或开发环境 可以发出 REST 请求。
充分熟悉 cURL,以便能够理解本指南中的示例 并将它们翻译成您正在使用的工具。附加包含 请求中,您必须正确设置访问令牌的格式。使用这些提示来帮助您使用 cURL 在完成快速入门时。有关 cURL 的详细信息,请参阅 curl.se。
附加请求正文
许多示例包括请求正文,即包含请求数据的 JSON 或 XML 文件。 使用 cURL 时,请将这些文件保存到本地系统,并使用 或选项。—data-binary-d此示例附加文件。
new-account.json
curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/ -H 'Authorization Bearer 00DE0X0A0M0PeLE!AQcAQH0dMHEXAMPLEzmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1EXAMPLEDUkWe6H34r1AAwOR8B8fLEz6nEXAMPLE' -H "Content-Type: application/json" —d @new-account.json -X POST
处理访问令牌中的感叹号运行 cURL 示例时,您可能会在 macOS 和 Linux 系统上出现错误,因为 OAuth 访问令牌中存在感叹号 (!)。为避免出现此错误, 对感叹号进行转义或使用单引号。转义感叹号 访问令牌,当访问令牌用双括起来时,在其前面插入反斜杠 引号。
\!
例如,访问令牌字符串 此 cURL 命令的感叹号 (!) 已转义。
curl https://MyDomainName.my.salesforce.com/services/data/v59.0/ -H "Authorization: Bearer 00DE0X0A0M0PeLE\!AQcAQH0dMHEXAMPLEzmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1EXAMPLEDUkWe6H34r1AAwOR8B8fLEz6nEXAMPLE"
或 您可以将访问令牌括在单引号内,以免对感叹号进行转义。
curl https://MyDomainName.my.salesforce.com/services/data/v59.0/ -H 'Authorization: Bearer 00DE0X0A0M0PeLE!AQcAQH0dMHEXAMPLEzmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1EXAMPLEDUkWe6H34r1AAwOR8B8fLEz6nEXAMPLE'
重要
所有引号,无论是单引号还是双引号,都必须是直引号,而不是 卷曲引号。
步 一:注册 Salesforce Developer Edition
Developer Edition 提供了一个免费且简单的解决方案,以便您可以将 Salesforce 用于 测试和开发。要注册 Developer Edition 帐户,请转到 developer.salesforce.com/signup。
注意
开发商 版本数据存储最大为 5 MB。此限制不会阻止您使用这些 例子。
如果您有开发沙盒,则可以将其与这些示例一起使用。
在开始之前,请按照以下方式验证您的用户配置文件是否具有 API 已启用权限 Salesforce 帮助中的用户权限中的说明。
第二步:设置身份验证
若要成功发送请求,REST API 需要由 认证。尽管您可以针对自己的连接应用创建和进行身份验证, 为方便起见,这些快速入门示例使用 Salesforce CLI。Salesforce CLI 是连接的 可以进行身份验证的应用程序,并且无需进行任何操作即可进行配置。
使用 Salesforce CLI 获取访问令牌
使用您从 Salesforce CLI 获取的访问令牌(也称为“持有者令牌”) 对 cURL 请求进行身份验证。
- 安装或更新 Salesforce CLI。.
- 如果您已安装 Salesforce CLI,请按照更新 Salesforce CLI 中的说明进行更新。
- 如果您需要安装 Salesforce CLI, 为您的操作系统安装最新版本。
- 验证您的安装。
- 使用 Salesforce CLI 登录您的开发人员组织。
sf org login web
浏览器打开 https://login.salesforce.com。 - 在浏览器中,使用用户的凭据登录到开发人员组织。
- 在浏览器中,单击“允许”以允许访问。在命令下 行中,您会看到类似的确认 消息。
Successfully authorized juliet.capulet@empathetic-wolf-g5qddtr.com with org ID 00D5fORGIDEXAMPLE
- 在命令行中,通过查看有关以下内容的身份验证信息来获取访问令牌 您的组织。
sf org display --target-org <username>
为 例:sf org display --target-org juliet.capulet@empathetic-wolf-g5qddtr.com
例 命令输出:=== Org Description KEY VALUE ─────────────── ──────────────────────────────────────────────────────────────────────────────────────────────────────────────── Access Token 00DE0X0A0M0PeLE!AQcAQH0dMHEXAMPLEzmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1EXAMPLEDUkWe6H34r1AAwOR8B8fLEz6nEXAMPLE Api Version 59.0 Client Id PlatformCLI Created By jules@sf.com Created Date 2023-11-16T20:35:21.000+0000 Dev Hub Id jules@sf.com Edition Developer Expiration Date 2023-11-23 Id 00D5fORGIDEXAMPLE Instance Url https://MyDomainName.my.salesforce.com Org Name Dreamhouse Signup Username juliet.capulet@empathetic-wolf-g5qddtr.com Status Active Username juliet.capulet@empathetic-wolf-g5qddtr.com
在 ,记下长访问令牌字符串和实例 URL 字符串。您需要两者才能发出 cURL 请求。注意在访问后获取新令牌 令牌过期时,请重复此步骤以查看您的身份验证信息。
可选的 Salesforce CLI 快捷方式
成功进行身份验证后,请在 cURL 中尝试这些可选快捷方式 工作流,以简化未来使用 Salesforce CLI 进行身份验证的流程。
列出我的组织
sf org list
列出您创建的所有组织 或经过身份验证。
打开我的组织
sf org open --target-org <username>
打开 浏览器中的指定组织(由用户名或别名标识)。因为你已经成功了 以前使用 Salesforce CLI 命令向此组织进行身份验证,不需要提供您的凭据 再。
org login web
显示“我的组织”的访问令牌
sf org display --target-org <username>
输出 包括您的访问令牌、客户端 ID、连接状态、组织 ID、实例 URL、用户名和 别名(如果适用)。
为我的用户名设置别名为方便起见,请为您的用户名创建一个别名,这样您就不必输入 整个 Salesforce 字符串。例如,代替
juliet.capulet@empathetic-wolf-g5qddtr.com
创造 像
dev
要在此示例中设置别名, 跑
sf alias set dev juliet.capulet@empathetic-wolf-g5qddtr.com
在脚本中使用这些命令
通过调用标志来使用 CLI 的 JSON 输出。 请求 JSON 输出提供一致的输出格式,非常适合运行 脚本。如果没有该标志,CLI 可以更改 输出格式。–json–json
第三步:演练示例代码
要访问 Salesforce 中不同类型的资源,请发出一系列 REST 请求。 在尝试这些示例之前,请确保完成先决条件并获取访问权限 令牌。
您可以复制并粘贴这些示例,以使用 cURL 发送它们。但首先将基本 URI 替换为您的 Salesforce 域。为 有关 REST 请求剖析的信息,请参阅 REST 资源和请求。MyDomainName
获取 Salesforce 版本
要检索有关每个可用 Salesforce 版本的信息,请提交版本请求。在这种情况下,请求不需要身份验证。
curl https://MyDomainName.my.salesforce.com/services/data/
此请求的输出(包括响应标头)指定所有有效的 版本。结果可以包含多个值。
Content-Length: 88
Content-Type: application/json;
charset=UTF-8 Server:
[
{
"label":"Spring '11",
"url":"/services/data/v21.0",
"version":"21.0"
}
...
]
获取资源列表
检索可用于 Salesforce 的资源列表,在此示例中,用于 版本 59.0,请提交“按版本划分的资源”请求。
curl https://MyDomainName.my.salesforce.com/services/data/v59.0/ -H "Authorization: Bearer access_token"
此请求的输出显示这是 Salesforce 版本 59.0 中的可用资源之一。sobjects
{
"sobjects" : "/services/data/v59.0/sobjects",
"search" : "/services/data/v59.0/search",
"query" : "/services/data/v59.0/query",
"recent" : "/services/data/v59.0/recent"
}
获取可用列表 对象
要请求可用对象的列表,请提交“描述全局”请求。
curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/ -H "Authorization: Bearer access_token"
此请求的输出显示 Account 对象可用。
Transfer-Encoding: chunked
Content-Type: application/json;
charset=UTF-8 Server:
{
"encoding" : "UTF-8",
"maxBatchSize" : 200,
"sobjects" : [ {
"name" : "Account",
"label" : "Account",
"custom" : false,
"keyPrefix" : "001",
"updateable" : true,
"searchable" : true,
"labelPlural" : "Accounts",
"layoutable" : true,
"activateable" : false,
"urls" : { "sobject" : "/services/data/v59.0/sobjects/Account",
"describe" : "/services/data/v59.0/sobjects/Account/describe",
"rowTemplate" : "/services/data/v59.0/sobjects/Account/{ID}" },
"createable" : true,
"customSetting" : false,
"deletable" : true,
"deprecatedAndHidden" : false,
"feedEnabled" : false,
"mergeable" : true,
"queryable" : true,
"replicateable" : true,
"retrieveable" : true,
"undeletable" : true,
"triggerable" : true },
},
...
获取对象基本信息
若要检索有关可用 Account 对象元数据的基本信息,请提交 sObject 基本信息请求。
curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/ -H "Authorization: Bearer access_token"
此请求的输出显示 Account 对象的基本属性,例如其 名称和标签,并列出最近使用的帐户。
{
"objectDescribe" :
{
"name" : "Account",
"updateable" : true,
"label" : "Account",
"keyPrefix" : "001",
...
"replicateable" : true,
"retrieveable" : true,
"undeletable" : true,
"triggerable" : true
},
"recentItems" :
[
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v59.0/sobjects/Account/001D000000INjVeIAL"
},
"Id" : "001D000000INjVeIAL",
"Name" : "asdasdasd"
},
...
]
}
获取字段列表
若要检索更详细的信息,请提交 sObject Describe 请求。
curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/describe/ -H "Authorization: Bearer access_token"
此请求的输出显示有关帐户的更多详细信息 对象,例如其字段属性和子关系。
{
"name" : "Account",
"fields" :
[
{
"length" : 18,
"name" : "Id",
"type" : "id",
"defaultValue" : { "value" : null },
"updateable" : false,
"label" : "Account ID",
...
},
...
],
"updateable" : true,
"label" : "Account",
...
"urls" :
{
"uiEditTemplate" : "https://MyDomainName.my.salesforce.com/{ID}/e",
"sobject" : "/services/data/v59.0/sobjects/Account",
"uiDetailTemplate" : "https://MyDomainName.my.salesforce.com/{ID}",
"describe" : "/services/data/v59.0/sobjects/Account/describe",
"rowTemplate" : "/services/data/v59.0/sobjects/Account/{ID}",
"uiNewRecord" : "https://MyDomainName.my.salesforce.com/001/e"
},
"childRelationships" :
[
{
"field" : "ParentId",
"deprecatedAndHidden" : false,
...
},
...
],
"createable" : true,
"customSetting" : false,
...
}
执行 SOQL 查询
若要执行检索所有帐户名称值列表的 SOQL 查询,请提交 查询请求。
curl https://MyDomainName.my.salesforce.com/services/data/v59.0/query?q=SELECT+name+from+Account -H "Authorization: Bearer access_token"
输出列出了可用的帐户名称,以及每个名称的前面属性 包括帐户 ID。
{
"done" : true,
"totalSize" : 14,
"records" :
[
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v59.0/sobjects/Account/001D000000IRFmaIAH"
},
"Name" : "Test 1"
},
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v59.0/sobjects/Account/001D000000IomazIAB"
},
"Name" : "Test 2"
},
...
]
}
注意
您可以在 Salesforce SOQL 和 SOSL 参考中找到有关 SOQL 的更多信息 指南。
更新记录中的字段
若要检索其中一个帐户并更新其帐单城市,请提交 sObject 行请求。要更新对象,请创建一个名为 patchaccount.json 的文本文件,其中包含新的计费城市 信息。
{
"BillingCity" : "Fremont"
}
在 REST 请求中指定此 JSON 文件。cURL 表示法在指定数据时需要该选项。查看更多 信息,请参阅 http://curl.haxx.se/docs/manpage.html。—d
此外,指定方法,该方法用于 更新 REST 资源。此 cURL 命令检索指定的 Account 对象 使用其 ID 字段并更新其帐单城市。PATCH
curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/001D000000IroHJ -H "Authorization: Bearer access_token" -H "Content-Type: application/json" --data-binary @patchaccount.json -X PATCH
不返回响应正文,只返回标头。
HTTP/1.1 204 No Content
Server:
Content-Length: 0
若要查看帐单地址是否已更改为 Fremont,请刷新 帐户。
使用其他工具
其他工具可用于从 Salesforce 组织获取数据。
如果不想使用 CURL,可以使用其他工具来练习 API。可能 选项包括:
- Salesforce 命令行界面。
- Postman(第三方工具)。有关详细信息,请参阅 Postman API 客户端 Trailhead 模块。
这些工具提供了简化创建和发送过程的功能 许多 API 请求。