Salesforce 通过 Flow 调用外部接口

1 接口设置

1.1 被调用的接口

调用外部接口需要先搭建好可以外网访问的 WebAPI, 我使用的是 .NET6 搭建的 WebAPI, 并开启了 Swagger (用于将接口导入到 Salesforce).

1.2 Salesforce 接口鉴权设置

在 设置 -> 安全性 -> 远程站点设置 里添加接口的地址, 有端口就需要带上端口号.

在 设置 -> 安全性 -> 命名凭证-> 外部凭据 里新建外部凭据. 我的接口鉴权方式沿用的钉钉APISecret鉴权, 所以验证协议选未验证. 在新建的外部凭据的 主体 添加一个别名, 在后面 Salesforce 里的授权会用到, 然后我在 自定义标题(就是发送请求的 header) 里添加了鉴权的参数.

 

在 设置 -> 安全性 -> 命名凭证-> 命名凭证 里新建命名凭证, URL 填写接口的地址, 外部凭据选择刚才新建的外部凭据. 被 Flow 调用时, 需要开启 专为调出启用(默认开启) 选项.

1.3 Salesforce 添加外部接口

在 设置 -> 集成 -> 外部服务 添加外部服务, 选择 从 API 规格中, 服务方案选 绝对 URL, URL 填写为接口的 Swagger 的 json 地址, 命名凭据选择上一步新建的命名凭据.

Salesforce 会自动读取接口的 json 说明文件, 解析出接口的调用方式和数据结构, 勾选需要给 Salesforce 调用的接口.

2 Salesforce 权限设置

2.1 外部凭据读取权限

在 管理 -> 用户 -> 权限集 里新建权限集,  许可证选无.

在新建权限集的 应用程序 -> 对象设置 -> 用户外部凭据 里, 开启 查看全部 权限.

在新建权限集的 应用程序 -> 外部凭据主体访问权限 里, 点击 编辑 按钮, 勾选 Salesforce 接口鉴权设置 里新建的外部凭据.

2.2 Flow 的运行权限

因为 Salesforce 新的安全策略, 需要手动开启普通用户的 Flow 运行权限.

在新建权限集的 应用程序 -> 应用程序权限 里, 开启 流和流业务流程 -> 运行流量 权限.

2.3 授权给所有用户

点击新建权限集的 管理分配 按钮, 添加所有用户, 需要移除 用户许可证 不是 Salesforce 的用户.

3 Flow 调用外部接口

需要在 Flow 的开始节点选择 操作和相关记录, 并启用 异步运行路径.

在异步分支里添加 操作 节点, 选择对应的外部服务和接口.

需要提交数据到接口, 需要开启 输入值 选项, 并设置提交的数据.

4 调试

调试调用接口需要选择 异步运行 路径和 以其他用户身份运行流, 普通用户和管理员的数据权限范围是不同的.

最好在 平台工具 -> 环境 -> Sandbox 里新建测试环境, 就可以选择以其他用户的身份运行 Flow, 方便发现问题. 正式环境没有这个功能, 无法以普通用户来测试权限是否正确.

调试运行完成会显示调试结果, 包括发送的数据和接收的数据, 如果权限设置不正确, 也会提示出来.

posted @ 2024-01-26 21:44  707wk  阅读(147)  评论(2编辑  收藏  举报