You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python SDK获取DocuSign Access Token失败求助

解决DocuSign JWT获取Access Token的错误问题

错误原因分析

第一个444错误

  • 混淆了OAuth授权服务器域名与API主机地址:account-d.docusign.com是沙箱环境的OAuth授权域名,你错误地将其设置为api_client.host(API请求的主机),导致请求路由错误。
  • 多余的私钥编码操作:encode("ascii").decode("utf-8")属于无效操作,可能引发潜在的编码问题。

第二个DNS解析错误

  • oauth_host_name格式错误:该参数仅需填写纯域名,你传入了带https://前缀的完整URL(https://demo.docusign.net/restapi),导致请求库错误地将https解析为主机名,触发DNS解析失败。

修正后的代码

def get_access_token(request):
    # 直接读取私钥文件内容
    with open("path/to/private.key", "r") as f:
        private_key = f.read()
    
    api_client = ApiClient()
    # 沙箱环境OAuth授权域名(仅填域名,不带协议)
    oauth_host = "account-d.docusign.com"
    # 沙箱环境API主机地址(完整URL)
    api_host = "https://demo.docusign.net/restapi"
    
    api_client.set_oauth_host_name(oauth_host_name=oauth_host)
    api_client.host = api_host
    
    token = api_client.request_jwt_user_token(
        client_id=settings.CLIENT_ID,
        user_id=settings.IMPERSONATED_USER_ID,
        oauth_host_name=oauth_host,
        private_key_bytes=private_key,
        expires_in=3600,
        scopes=["signature", "impersonation"]
    )
    
    access_token = token.access_token
    return access_token

关键注意事项

  • 环境区分:
    • 沙箱环境:OAuth域名account-d.docusign.com,API主机https://demo.docusign.net/restapi
    • 生产环境:OAuth域名account.docusign.com,API主机https://www.docusign.net/restapi
  • 参数格式:oauth_host_name必须是纯域名,不能包含https://或任何路径。
  • JWT前置检查:确保已在DocuSign后台完成以下操作:
    • 将应用的公钥上传至DocuSign开发者平台
    • 为目标用户授予应用的JWT访问权限(完成“同意”步骤)
  • 私钥正确性:确认使用的私钥与上传至DocuSign的公钥配对,文件路径无误。

内容的提问来源于stack exchange,提问作者amirmohamad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:03:09