【发布时间】:2020-03-09 13:21:19
【问题描述】:
我们正在构建一个数据集成平台以连接到 Salesforce。
想知道是否有任何文档可以使用 API 以编程方式创建连接的应用程序。我看到很多关于通过 UI 而不是通过 API 创建连接应用程序的文档。
【问题讨论】:
标签: oauth-2.0 salesforce
我们正在构建一个数据集成平台以连接到 Salesforce。
想知道是否有任何文档可以使用 API 以编程方式创建连接的应用程序。我看到很多关于通过 UI 而不是通过 API 创建连接应用程序的文档。
【问题讨论】:
标签: oauth-2.0 salesforce
您可以通过元数据 API 创建连接的应用程序,就像任何其他 Salesforce 元数据一样。
最简单的方法是在 Salesforce 组织中构建 Connected App,然后使用元数据 API 客户端(SFDX、Workbench、CumulusCI、Ant...)提取它。从元数据中删除消费者密钥,然后您就可以将该连接的应用程序干净地部署到另一个组织中。
但请注意,这很少有必要。连接的应用程序是全局元数据:您通常在您控制的单个组织中维护连接的应用程序,然后它可以在任何地方使用。只有当每个订阅者组织都需要一个不同的时,我才真正看到需要部署连接的应用程序。
【讨论】:
此代码创建连接的应用程序。
MetadataService.MetadataPort service = createService();
MetadataService.ConnectedApp connectedApp = new MetadataService.ConnectedApp();
connectedApp.label = 'Test 005';
connectedApp.fullName = 'Test_005';
connectedApp.contactEmail = 'email@email.com';
MetadataService.ConnectedAppOauthConfig oauthConfig = new
MetadataService.ConnectedAppOauthConfig();
oauthConfig.consumerKey = 'yourConsumerKey';
oauthConfig.consumerSecret = 'yourConsumerSecret';
oauthConfig.scopes = new List<String>{'Basic', 'Api', 'Web', 'Full'};
oauthConfig.callbackUrl = 'https://www.google.com/';
connectedApp.oauthConfig = oauthConfig;
List<MetadataService.SaveResult> results = service.createMetadata(new
MetadataService.Metadata[] { connectedApp });
【讨论】: