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

时间:2018-08-05 19:49:49

标签: python json jwt docusignapi

我正在尝试使用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 个答案:

答案 0 :(得分:2)

我在同一行出现了完全相同的错误。

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

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

事实证明,user_id值应为API用户名代码。这解决了问题。我在这里找到了答案: DocuSign Python SDK - API Exception 400 - 'Bad Request'

希望它也可以解决您的问题!