【问题标题】:DocuSign API: How to create an Envelope using Application Authentication?DocuSign API:如何使用应用程序身份验证创建信封?
【发布时间】:2021-05-27 19:02:34
【问题描述】:

我已将我的应用程序连接到 DocuSign 并创建了 JWT,收到了我的访问令牌,并成功请求了用户信息 (https://developers.docusign.com/docs/admin-api/admin101/application-auth/)。

连接此应用的主要目的是创建信封。

对用户信息的调用(如上面链接的文档中所示)的 URL:https://api-d.docusign.net/management/v2/organizations/{orgId}/users?email=email@doman.com

对信封的调用(调用 get on this hits 'listStatusChanges' 并调用 POST 调用'create')使用以下 url:https://demo.docusign.net/restapi/v2.1/accounts/{accountId}/envelopes

但是,当我使用上面创建的访问令牌(包括“签名”范围)并使用我的“API 帐户 ID”作为信封端点上的 accountId 时,我收到以下错误:

{ "errorCode": "AUTHORIZATION_INVALID_TOKEN", "message": "提供的访问令牌已过期、已撤销或格式错误。系统应用程序的身份验证失败。" }

但是,如果我通过再次获取用户信息来测试我的 access_token,则在收到该错误后,它可以工作。因此,尽管请求签名范围访问,但我不能在签名端点上使用我的访问令牌。是否有另一个步骤可以让应用程序身份验证与签名端点一起工作?我是否使用了错误的帐户 ID(我的 orgId 和 userId 也不起作用)?

【问题讨论】:

  • 您是否添加了“模拟”范围?这是 JWT 的强制要求
  • 那么“模拟”对于 JWT 试图访问“签名”范围是强制性的吗?还是所有与管理无关的范围?
  • “模拟”需要使用 JWT 周期。 JWT 使您能够通过仅指定用户 ID 来进行 API 调用,而无需该用户登录。因此 - 您始终模拟用户。
  • 好吧,你不需要模拟来使用 jwt 来获取 accesss_token 以在管理 api 上使用,因为你不模拟用户。您可以在我的帖子的第一个链接中看到 - “与 JWT 授权不同,应用程序身份验证直接向您的应用程序授予权限,而不是让您的应用程序模拟(代表)用户。这消除了登录用户的需要因为应用程序已经过身份验证。” .我尝试将“模拟”添加到范围,但在对“listStatusChanges”端点的 GET 请求中仍然收到相同的错误。
  • listStatusChanges 不在 Admin API 中,但在 eSignature API 中。请注意,要添加范围,您需要再次请求同意,所以不确定您是否这样做了。

标签: docusignapi


【解决方案1】:

应用程序令牌不能用于电子签名 API。为了创建信封,您需要在 JWT 断言中包含一个用户 ID,以便 DocuSign 有一个用户可以将信封绑定到。

如果您不希望帐户上的指定用户发送信封,您可以考虑将通用“API 用户”添加到您的帐户并让集成充当他们。无论如何,您需要 obtain consent 进行集成,以充当您为此选择的任何人。

对于如何使用我们的客户端库进行端到端的了解,我会赞同 Inbar 的建议,即查看您正在使用的任何语言的快速入门项目:https://developers.docusign.com/docs/esign-rest-api/quickstart/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    相关资源
    最近更新 更多