Docusign Python SDK 身份验证示例错误:错误请求

Posted

技术标签:

【中文标题】Docusign Python SDK 身份验证示例错误:错误请求【英文标题】:Docusign Python SDK Authentication Example Error: Bad Request 【发布时间】:2019-01-12 19:53:41 【问题描述】:

我正在尝试使用 Docusign Rest API 并尝试在此处遵循 Github 上 Python SDK 上的示例代码:https://github.com/docusign/docusign-python-client。我已经用从 Docusign 获得的值(键、url 等)替换了必要的值,但该示例似乎在以下行中分解:

api_client.configure_jwt_authorization_flow(private_key_filename, oauth_base_url, integrator_key, user_id, 3600)

在此之前,代码获取给定信息并创建 url 以进行身份​​验证,据我所知。我已经手动访问了这个链接,它似乎工作;它要求我允许该程序代表我执行操作,然后将我重定向到重定向 uri,并将代码添加到 uri。我的问题是,当它执行下一行(我在上面发布的那个)时,它会导致:

Traceback (most recent call last):

  File "<ipython-input-40-84847e506c37>", line 1, in <module>
    runfile('C:/Users/santi/Desktop/docusign/untitled0.py', wdir='C:/Users/santi/Desktop/docusign')

  File "C:\Users\santi\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "C:\Users\santi\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/santi/Desktop/docusign/untitled0.py", line 501, in <module>
    api_client.configure_jwt_authorization_flow(private_key_filename, oauth_base_url, integrator_key, user_id, 3600)

  File "C:\Users\santi\Anaconda3\lib\site-packages\docusign_esign\api_client.py", line 126, in configure_jwt_authorization_flow
    post_params=self.sanitize_for_serialization("assertion": assertion, "grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer"))

  File "C:\Users\santi\Anaconda3\lib\site-packages\docusign_esign\api_client.py", line 430, in request
    body=body)

  File "C:\Users\santi\Anaconda3\lib\site-packages\docusign_esign\rest.py", line 244, in POST
    body=body)

  File "C:\Users\santi\Anaconda3\lib\site-packages\docusign_esign\rest.py", line 200, in request
    raise ApiException(http_resp=r)

ApiException: (400)
Reason: Bad Request
HTTP response headers: HTTPHeaderDict('Cache-Control': 'private', 'Content-Type': 'text/html', 'X-AspNetMvc-Version': '5.2', 'X-DocuSign-TraceToken': '15fb83c2-9054-4522-b5ed-b77646fe1c4b', 'X-DocuSign-Node': 'DA2DFE4', 'Date': 'Sun, 05 Aug 2018 19:35:12 GMT', 'Content-Length': '11')
HTTP response body: b'Bad Request'

我用谷歌搜索了这个问题,在这里发现了一些类似的错误,但没有一个对我有太大帮助。跟踪回溯将我带入 api_client.py 和 rest.py 文件,但我无法破译太多。最后,错误的起源似乎在 rest.py 的第 200 行,因为我不知道的值不在适当的范围内,所以引发了异常。我不确定是什么导致了我的错误请求。有没有人有类似的经历或可能知道问题是什么?非常感谢,谢谢。

【问题讨论】:

【参考方案1】:

我在同一行遇到了完全相同的错误。

api_client.configure_jwt_authorization_flow() 的帐户特定输入是:

    private_key_filename(正确处理以获取 JWT 令牌) oauth_base_url(在示例中硬编码为 "account-d.docusign.com") integrator_key(从我的帐户复制粘贴) user_id

原来user_id 值应该是API 用户名代码。这解决了问题。我在这里找到了答案: DocuSign Python SDK - API Exception 400 - 'Bad Request'

希望它也能解决你的问题!

【讨论】:

非常感谢它完美地修复了它!

以上是关于Docusign Python SDK 身份验证示例错误:错误请求的主要内容,如果未能解决你的问题,请参考以下文章

需要 DocuSign JWT 身份验证 .p12 而不是 PEM

Docusign REST API:使用 Microsoft Flow 的 JWT Grant 实现 OAuth 身份验证

DocuSign:在 JWT 令牌中设置过期 - 始终获取一小时过期的访问令牌

DocuSign 获取 JWT 令牌 MEAN Stack

我可以在尝试连接到未经身份验证的网络路径时显示 Windows 身份验证对话框吗

无法使用 DocuSign Python 代码生成 jwt 令牌