使用 Apex 工具包的发件人 OAuth 流程

OAuth Flow for Sender Using Apex Toolkit

我开发了一种可调用的 Apex 方法,它利用 DocuSign Apex 工具包通过 Salesforce 流程准备和发送信封。

我遇到的唯一问题是当它被 Salesforce 用户调用时,该用户已添加为 DocuSign 用户,但尚未通过 OAuth 流程将 Salesforce 连接到 DocuSign 以获取其用户帐户。

一个解决方法是我让新用户单击任何记录的标准 "Send with DocuSign" 按钮,然后显示 "Before you can use DocuSign, you must grant consent for this application to make requests on your behalf." 消息和一个按钮来启动和完成 OAuth 流程。完成此操作后,我可以返回我的流程,它将作为该用户成功完成。

关于如何 "pre-authorize" 用户,或在流程中检查授权的任何想法(此数据是否存储在 Salesforce 中),或至少找到获得此 "Authorize" 的方法Salesforce 中的屏幕而不需要开始发送信封的过程?

谢谢 马特

是的,帐户管理员可以授予 "blanket" 同意,称为 管理同意 ,用于相关集成密钥(客户端 ID)和范围您的应用程序需要。

这样做:

  1. 该帐户需要管理员功能使用 SSO 进行访问管理您可以通过向 go-live@docusign.com 发送电子邮件请求为您的开发人员沙箱帐户启用此功能。请联系您的 DocuSign 客户经理以将该功能添加到生产帐户。
  2. 您需要为您的用户申请电子邮件域。
  3. 使用管理工具的 Connected Apps 磁贴向应用程序声明域中的用户授予管理许可。

以上假定您正在为 Apex 应用程序提供集成密钥。

如果您使用的是 DocuSign 提供的集成密钥,那么您还需要使用 Admin consent for external applications API.

如果您使用 DocuSign 提供的集成密钥作为 DocuSign for Salesforce 产品的一部分,那么我会首先确保为您帐户中的每个人启用该产品;这可能会解决您应用的同意问题。

回复:检测是否需要同意

如果需要同意,DocuSign 会以特定的 consent_required 错误作为响应。因此,请检查您的呼叫的错误响应。参见 APIError