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

使用DocuSign API根据邮箱获取用户ID及删除用户的问题排查

如何通过DocuSign API根据邮箱获取单个用户信息?

问题原因分析

你遇到返回所有用户的问题,核心出在两个地方:

  1. GET请求参数传递方式错误:DocuSign的GET /v2/accounts/{accountId}/users接口不支持通过请求体(也就是你用的json=data)传递过滤条件,而且GET请求本身就不应该用请求体传参。你当前写的data={"users": [{"email": email}]}根本不会被API解析,所以接口默认返回了该账户下的全部用户。
  2. 冗余请求头干扰:你的请求头里包含了Content-Length、Origin、Referer这类浏览器端请求才需要的字段,服务器端调用DocuSign API时这些字段不仅多余,甚至可能导致接口解析异常。

解决方案:用查询参数过滤用户

要根据邮箱精准获取单个用户,你需要通过URL查询参数传递email过滤条件,同时简化请求头。以下是修正后的完整代码:

import sys
import requests

# 从命令行获取目标邮箱
email = sys.argv[1]
account_id = "<你的账户ID>"
auth_token = "<你的Bearer令牌>"

# 只保留API必需的请求头
headers = {
    'Accept': 'application/json',
    'Authorization': f'Bearer {auth_token}'
}

# 构造带email查询参数的请求URL
url = f'https://demo.docusign.net/restapi/v2/accounts/{account_id}/users?email={email}'

# 发送GET请求,无需传递json参数
response = requests.get(url, headers=headers)

# 处理响应结果
if response.status_code == 200:
    users_list = response.json().get('users', [])
    if users_list:
        target_user = users_list[0]
        user_id = target_user.get('userId')
        print(f"找到目标用户:ID={user_id},邮箱={target_user.get('email')}")
        # 这里可以继续调用删除用户的API:DELETE /v2/accounts/{account_id}/users/{user_id}
    else:
        print(f"未找到邮箱为 {email} 的用户")
else:
    print(f"请求失败,状态码:{response.status_code},错误信息:{response.text}")

额外提示

  • DocuSign的GET /users接口支持多个查询参数(比如userName、status),你可以根据需求组合使用来缩小筛选范围。
  • 如果账户下存在多个相同邮箱的用户(这种情况极少),接口会返回所有匹配项,你需要额外添加逻辑处理。
  • 删除用户时,直接调用DELETE /v2/accounts/{accountId}/users/{userId}接口,传入获取到的user_id即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:48:49