我正在将Python包装器用于docusign docusign-esign
。
我正在尝试使用令牌的几种方式,希望其中一种可以使用。我已经阅读了Docusign的文档和示例。我不确定在哪里可以寻求帮助。
发布摘要时,我将链接到docusign的代码。因此,不熟悉包装器的人也可以理解它。
我正在使用两种方法request_jwt_application_token
和request_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并进行了故障排除。
只是想知道是否有人对这个问题可能有什么了解。
答案 0 :(得分:2)
如果您正在使用JWT令牌,则需要获取要“模拟”的用户的userId。您可以通过登录到沙箱找到该用户ID。
答案 1 :(得分:1)
总结解决方案(请参阅带有问题的评论):
Implicit Grant
的集成密钥。user Id
是“管理”工具的用户部分中的API Username
值。不要将其与DocuSign网络工具右上角您姓名附近的简短格式Account Id
混淆。request_jwt_user_token
方法通过JWT Grant流获取访问令牌。