如何通过API创建Connected App?求Salesforce程序化创建相关文档
嗨,我之前帮不少开发者解决过这个问题——确实Salesforce关于UI创建Connected App的资料随处可见,但API创建的方案确实藏得有点深。不过放心,官方是支持通过API程序化创建Connected App的,核心是用「Metadata API」来实现,下面给你详细说明:
一、官方文档在哪里找?
你可以在Salesforce开发者文档的「Metadata API 参考」板块中,搜索ConnectedApp元数据类型,里面包含了所有可配置字段、权限要求和请求示例。这就是官方认可的API创建文档入口,只是需要精准定位到元数据类型的说明页。
二、具体实现步骤
1. 先确认权限要求
执行API请求的用户必须具备以下权限:
Manage Connected Apps权限(在Profiles或Permission Sets中配置)API Enabled权限(确保能调用Metadata API)- 对应的元数据操作权限(比如允许修改Connected App类别的元数据)
2. 构造Connected App元数据
Connected App对应的元数据类型是ConnectedApp,你需要构造符合格式的元数据内容。这里给你一个XML格式的基础示例(如果用REST版Metadata API,也可以用JSON格式):
<?xml version="1.0" encoding="UTF-8"?> <ConnectedApp xmlns="http://soap.sforce.com/2006/04/metadata"> <contactEmail>your-team@your-platform.com</contactEmail> <label>你的集成平台对接App</label> <oauthConfig> <callbackUrl>https://your-integration-platform.com/salesforce/callback</callbackUrl> <scopes> <scope>Api</scope> <scope>RefreshToken</scope> <scope>Full</scope> </scopes> <oauthGrantType>AuthorizationCode</oauthGrantType> <oauthGrantType>RefreshToken</oauthGrantType> </oauthConfig> <isAdminApproved>false</isAdminApproved> </ConnectedApp>
这个示例包含了集成场景常用的配置:联系邮箱、应用显示名称、OAuth回调地址、授权范围和授权类型。你可以根据需求添加更多字段,比如logoUrl(应用图标)、ipRanges(IP限制)等,具体参考官方文档的字段说明。
3. 调用Metadata API提交创建
你有两种主流方式调用Metadata API:
- SOAP版Metadata API:调用
create()方法,把构造好的ConnectedApp元数据作为参数提交。 - REST版Metadata API:发送POST请求到
/services/data/vXX.X/metadata端点(XX.X替换为你使用的API版本号),请求体包含元数据内容和操作类型。
这里给一个REST API的请求体示例(JSON格式):
{ "fullName": "YourIntegrationConnectedApp", "metadata": { "contactEmail": "your-team@your-platform.com", "label": "你的集成平台对接App", "oauthConfig": { "callbackUrl": "https://your-integration-platform.com/salesforce/callback", "scopes": ["Api", "RefreshToken", "Full"], "oauthGrantType": ["AuthorizationCode", "RefreshToken"] }, "isAdminApproved": false }, "type": "ConnectedApp" }
4. 验证创建结果
API调用后会返回包含操作状态的响应,如果成功,你可以在Salesforce Setup的「Connected Apps」列表中看到这个应用,也可以通过Metadata API的read()方法获取它的详细配置信息。
三、额外小贴士
- 如果你用Salesforce CLI做集成,可以直接用
force:mdapi:deploy命令部署Connected App元数据,这是对Metadata API的封装,用起来更简便。 - 如果需要配置高级功能(比如与外部身份提供商集成),可以在元数据中添加对应的字段,比如
samlConfig节点,具体参考官方文档的字段说明。 - 元数据中的
fullName(即应用的API名称)要符合Salesforce的命名规则,不能包含特殊字符,只能用字母、数字和下划线。
内容的提问来源于stack exchange,提问作者Anurag Sharma

