尝试示例项目:https://github.com/docusign/eg-01-java-jwt出现以下错误:Fetching an access token via JWT grant...Exception in thread "main" com.docusign.esign.client.ApiException: Error while requesting an access token: POST https://account-d.docusign.com/oauth/token returned a response status of 400 Bad Request at com.docusign.esign.client.ApiClient.requestJWTUserToken(ApiClient.java:740)我猜我在组装 JWT 请求时错过了一些东西: String privateKey = DSConfig.PRIVATE_KEY.replace("\\n", "\n"); byte[] privateKeyBytes = privateKey.getBytes(); apiClient.setOAuthBasePath(DSConfig.DS_AUTH_SERVER); OAuth.OAuthToken oAuthToken = apiClient.requestJWTUserToken( DSConfig.CLIENT_ID, DSConfig.IMPERSONATED_USER_GUID, scopes, privateKeyBytes, TOKEN_EXPIRATION_IN_SECONDS);配置属性:# Integrator Key (client id) issDS_CLIENT_ID=4dcfdaa1-xxxx-xxxx-xxxx-110bf207310f# API username Guid subDS_IMPERSONATED_USER_GUID=5aff04e4-xxxx-xxxx-xxxx-7ac9eefdac1a# private key stringDS_PRIVATE_KEY=\n\-----BEGIN RSA PRIVATE KEY-----\n\MIIEowIBAAKCAQEAgb2XJwtQ3S8henWphAtUcAChdDl1yYzHllytR4DZMY5hqp6E\n\8A2kxblecKHSa4OMn5fP2liyWOCNNA7Vactj0/zI60yUdeOtRg4GyjjG/ShPc80F\n\...sJn5DNlHlwpQjsxyVpxrkGNIRzhTUxdBGZ4VZrh5QM77z9kSX9uKkZ7oZQWv7IcJ\n\hO80HJ6v12HvTqypoqqOvVPKC1SK61cwdWdKi1GExcPqbrFoAJkB\n\-----END RSA PRIVATE KEY-----我得到的唯一错误是:Exception in thread "main" com.docusign.esign.client.ApiException: Error while requesting an access token: POST https://account-d.docusign.com/oauth/token returned a response status of 400 Bad Request想知道为什么它在 400 时失败,并且没有其他信息可以用来弄清楚为什么我得到 400。我打赌你们可能知道为什么会发生这种情况。提前致谢。
3 回答
倚天杖
TA贡献1828条经验 获得超3个赞
当前版本的 DocuSign Java SDK 不会报告从 DocuSign 收到的错误原因。即将发布的 Java SDK(候选版本现已推出)修复了此问题。(但我认为该示例需要更新。)
我认为这就是您遇到的问题。正如德鲁在他的回答中所说,潜在的错误可能是consent_required。
撒科打诨
TA贡献1934条经验 获得超2个赞
假设其他一切都正确,您是否已授予申请同意书?当您使用 JWT Grant 工作流程时,您需要确认您已授予两个范围:signtaure impersonation
. 个人同意要求您导航到特定 URL、进行身份验证并授予应用程序以您身份行事的权限。
组织同意要求您拥有已声明的域,并且仅适用于电子邮件地址位于该域下的用户。
添加回答
举报
0/150
提交
取消