请求生成令牌时出现问题

时间:2019-07-02 23:37:52

标签: python docusignapi

我正在将Python包装器用于docusign docusign-esign

我正在尝试使用令牌的几种方式,希望其中一种可以使用。我已经阅读了Docusign的文档和示例。我不确定在哪里可以寻求帮助。

发布摘要时,我将链接到docusign的代码。因此,不熟悉包装器的人也可以理解它。

我正在使用两种方法request_jwt_application_tokenrequest_jwt_user_token

    results = api_client.request_jwt_application_token(
        DOCUSIGN_INTEGRATOR_KEY,
        DOCUSIGN_OAUTH_BASE_URL,
        private_key_bytes,
        TOKEN_EXPIRATION_IN_SECONDS,
        scopes=(OAuth.SCOPE_SIGNATURE, OAuth.SCOPE_IMPERSONATION)
    )
results:

{'access_token': 'eyJ0eXAiOiJNVCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiNjgxODVmZjEtNGU1MS00Y2U5LWFmMWMtNjg5ODEyMjAzMzE3In0.AQgAAAABAAsADQAkAAAAYTNkZTI3MjMtMmUzYS00ZWUxLWE1NzktY2FjNjA1Z
DE3NDc5BwCAK89-QP_WSAgAgGvyjIP_1kgLAB8AAABodHRwczovL2FjY291bnQtZC5kb2N1c2lnbi5jb20vDAAkAAAAYTNkZTI3MjMtMmUzYS00ZWUxLWE1NzktY2FjNjA1ZDE3NDc5GAACAAAABQAAAB0AAAASAAEAAAAGAAAAand0
X2Jy.FK9nETujvSqQPyvE0LQZVuB-LrBHWUcmgFaqhGfBm9Wk39SlD41OohLRYGrM6SzXohjorSsDzRB9rHF9d9qmdKaj2ZXNGDBsTE3eRUGeYp-0cWRN3qYNQmgfdsqOTAslNiXQdNfgxsBFjaQtKag2f51MZ_xdvMW4iVjB1WMXFP
vf6BaEy5BJWzpdmd0JE5-8UvDhFV2wxLAGSc1d2JaxJbcFMnBt3-xQMmYtCgyJ5SAh9LxU_rAIt7AkoalPHILQjieAh4kupFeQiLJHSjX7o37K6DngG9I0iHXWspW_rMNOH-_70Um_iSPPNI_hnpJZKB3yDMkiuYcXZKFLEf1L7g',
 'data': None,
 'expires_in': '3600',
 'refresh_token': None,
 'scope': None,
 'token_type': 'Application'}

这是获取令牌时获得的最接近的距离,但是,何时使用令牌获取用户信息api_client.get_user_info(token)

我知道

ApiException: (401)
Reason: Unauthorized
HTTP response headers: HTTPHeaderDict({'X-DocuSign-Node': 'SE1DFE2', 'Content-Length': '87', 'Expires': '-1', 'Vary': 'Accept-Encoding', 'X-DocuSign-TraceToken': 'e8af89bc-c18
4-45d7-8f9c-a7faff443006', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'Date': 'Tue, 02 Jul 2019 22:56:50 GMT', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"error":"internal_server_error","reference_id":"e8af89bc-c184-45d7-8f9c-a7faff443006"}

我为此找到了一些解决方案,但并没有成功。

然后我尝试使用

    results = api_client.request_jwt_user_token(
        DOCUSIGN_INTEGRATOR_KEY,
        DOCUSIGN_USERID,
        DOCUSIGN_OAUTH_BASE_URL,
        private_key_bytes,
        TOKEN_EXPIRATION_IN_SECONDS,
        scopes=(OAuth.SCOPE_SIGNATURE, OAuth.SCOPE_IMPERSONATION)
    )

这根本不起作用。无法获得令牌。

results:

Reason: Bad Request
HTTP response headers: HTTPHeaderDict({'X-DocuSign-Node': 'DA1DFE4', 'Content-Length': '27', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload', 'X-Co
ntent-Type-Options': 'nosniff', 'Content-Type': 'application/json; charset=utf-8', 'Expires': '-1', 'Vary': 'Accept-Encoding', 'X-XSS-Protection': '1; mode=block; report=/clie
nt-errors/xss', 'X-DocuSign-TraceToken': 'b5d728bc-a442-4b35-bdb3-3026e64df334', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'Date': 'Tue, 02 Jul 2019 23:12:49 GMT', 'X
-Frame-Options': 'SAMEORIGIN', 'X-AspNetMvc-Version': '5.2'})
HTTP response body: {"error":"invalid_request"}

我已经过https://developers.docusign.com/esign-rest-api/guides/authentication/oauth2-jsonwebtoken并进行了故障排除。

只是想知道是否有人对这个问题可能有什么了解。

2 个答案:

答案 0 :(得分:2)

如果您正在使用JWT令牌,则需要获取要“模拟”的用户的userId。您可以通过登录到沙箱找到该用户ID。

答案 1 :(得分:1)

总结解决方案(请参阅带有问题的评论):

  1. 检查是否检查Implicit Grant的集成密钥。
  2. 将被模拟的user Id是“管理”工具的用户部分中的API Username值。不要将其与DocuSign网络工具右上角您姓名附近的简短格式Account Id混淆。
  3. 使用SDK的request_jwt_user_token方法通过JWT Grant流获取访问令牌。