近期我们帮助零售行业的企业对接其交易伙伴,用户需要将通过EDI系统接收到的EDI 850采购订单数据集成到其Salesforce系统中。
通过知行之桥EDI系统连接Salesforce,需要使用到REST端口。只需在可视化界面中进行配置即可实现连接,步骤如下:
创建一个REST端口
进入知行之桥EDI系统,在左侧 端口 列表的 基础(core) 列表 中,找到REST端口,点击并拖拽至右侧空白工作区中,即可创建一个 REST 端口。也可以在端口列表下的搜索框中搜索 REST,快速创建端口。
配置基本信息
点击 REST 端口,在弹框页面中的 设置 选项卡下配置连接 Salesforce 的基本信息。
认证类型可以选择None,Basic,NTLM,Digest,OAuth 2.0,Bearer Token,AWS Signature。
如果要将接收到的采购订单数据提供给Salesforce,这里的 方法 需要设置为POST,认证类型 需要选择 OAuth2.0。
关于OAuth2.0的配置可以参考文章:知行之桥如何支持微软邮箱OAuth2.0认证
授权类型 可以选择 Authorization Code,Client Credentials以及Password。如果选择 Password,需要补充访问令牌URL、用户名、密码、客户端Id以及客户端密码等信息,如下所示:
通过以上配置是能够正常连接到Salesforce的,但会出现这样的挑战:
出现报错:HTTP protocol error. 401 Unauthorized. 需要手动点击刷新令牌。
这个报错是由于使用了password的授权类型,但令牌有时效性,无法自动刷新访问令牌。
由于通过客户端ID和密码获取到的令牌具有时效性,过期需要手动刷新,要想顺利实现连接,需要人工点击上图右下角的 获取新的访问令牌。
EDI系统需要保证全天候的自动化数据传输,从而确保能够及时收到客户发来的订单,因此这种授权类型并不符合当前我们的连接需求,需要将 授权类型 修改为 Authorization Code。如下所示,配置界面中需要的内容:
1.回调URL
这里的回调URL是OAuth2.0连接到的服务返回令牌以提供访问的URL。服务通常要去将允许的URL列入白名单,因此这是在服务中配置应用程序注册时要使用的值。用户需要将这里的回调URL配置到自己的Salesforce系统接口上。这里的回调URL,EDI系统会自动生成,用户不可做修改。
注:回调URL是以知行之桥系统的访问url为准。如果用户的系统实际访问的是https(自己配置了SSL证书),只需要在Salesforce上配置带https的URL即可。
用户可以在知行之桥EDI系统右上角点击齿轮图标,找到 高级设置 页面,在这个页面下的 高级设置 中配置 https:// 开头的主机地址即可。
2.认证 URL以及访问令牌URL
认证URL:OAuth2.0服务的授权URL,这是在单击“连接”按钮登录并授予应用程序权限时定向的URL。
访问令牌URL:OAuth 2.0访问令牌的URL。
用户需要根据自己Salesforce的信息提供以上两个URL并配置到知行之桥EDI系统中。
3.客户端Id和密码
这里的客户端Id和密码即为注册OAuth时分配的客户端Id和密码。
4.获取新的访问令牌
成功登录一次之后会获取到两个token:access token 以及 refresh token。access token具有时效性,过期之后将会借助refresh token来刷新access token,从而实现自动获取访问令牌。
其他问题
1.令牌刷新策略
Salesforce系统中的令牌刷新策略包括:
- Refresh token is valid until revoked
- Immediately expire refresh token
- Expire refresh token if not used for ** Days
- Expire refresh token after ** Days
这里选择Refresh token is valid until revoked或者Immediately expire refresh token都可以。
2.刷新令牌,将会弹出登录界面,需要输入密码登录,但推送文件失败
弹出登录界面属于正常的Oauth流程,但推送文件的时候出现401认证失败的报错,这是因为用户的服务器设置或者salesforce的认证有问题,没有给这个token足够的权限,导致获取的token没有权限访问REST API,需要在salesforce上检查。
了解更多 EDI 信息,请参阅: EDI 是什么?