DocuSign新Shared Access模式下非管理员用户的可管理用户查询与共享信封获取API问题
针对你遇到的两个疑问,我整理了官方支持的解决方案,帮你避开内部接口的坑:
1. 非管理员用户如何查询自己可管理的账户用户?
你在网站上看到的那个/api/accounts/.../authorizations/agent接口是DocuSign前端内部使用的,并没有对外开放,所以用Postman调用会返回API_RESTRICTED错误,这是正常的。
官方提供了专门的对外开放端点来获取当前用户的共享权限信息:
- 使用Accounts API的
GET /v2.1/accounts/{accountId}/users/shared_access - 调用时带上用户A的有效OAuth令牌,接口会返回所有给用户A授予了共享权限的用户列表,包含对方的
userId、授予的权限集(比如Send、Manage)等关键信息。
这个端点是DocuSign官方文档中明确支持的,完全可以用来替代你之前尝试的内部接口。
2. 新Shared Access模式下获取共享信封的正确方式?
你发现的X-DocuSign-Act-On-Behalf请求头用法其实是官方支持的标准方案,并不是临时解决办法,正确的流程应该是这样的:
- 第一步:先用上面提到的
shared_access端点获取到用户B的userId以及对应的权限(比如Manage Envelopes)。 - 第二步:调用Envelopes API(比如
GET /v2.1/accounts/{accountId}/envelopes)时,添加请求头X-DocuSign-Act-On-Behalf: {userB的userId},同时确保用户A的OAuth令牌包含对应的权限scope(比如signature)。这样就能以用户A的身份获取用户B共享的信封了。
另外,如果你只是想查看所有共享给自己的信封,还可以直接调用GET /v2.1/accounts/{accountId}/envelopes并加上查询参数shared_with_me=true,这个参数会返回所有当前用户被共享的信封列表,但如果需要对这些信封进行操作(比如修改、发送),还是需要通过X-DocuSign-Act-On-Behalf头模拟授权用户的身份。
注意事项
- 确保管理员用户B给用户A配置的共享权限包含了对应的操作权限(比如Manage Envelopes),否则即使调用接口也会返回权限不足的错误。
- 你的OAuth令牌需要包含足够的scope,比如
signature是最基础的,若需要更多管理权限可能需要impersonation等额外scope。
内容的提问来源于stack exchange,提问作者Rémy Letient
相关产品推荐
相关产品推荐

