所有DocuSign接口调用均返回"Invalid UserId"错误的原因排查
解决DocuSign接口调用返回"Invalid UserId."的问题
以下是针对你遇到的问题的具体修复方案:
核心问题:未配置正确的API BasePath
虽然你成功获取了UserInfo,但DocuSign每个账号都有专属的API端点,必须将客户端的BasePath设置为目标账号对应的地址,否则会导致身份验证异常。
修复步骤
- 设置正确的BasePath
在获取UserInfo后,添加代码设置客户端的BasePath:
var docusignClient = new DocuSignClient(); DocuSign.eSign.Client.Auth.OAuth.OAuthToken accessToken = docusignClient.RequestJWTUserToken( "client id", "userid", "account.docusign.com", System.IO.File.ReadAllBytes("privateKey.txt"), expiresInHours: 1, new List<string> { "signature", "impersonation" } ); // 获取用户信息后,设置正确的BasePath DocuSign.eSign.Client.Auth.OAuth.UserInfo userInfo = docusignClient.GetUserInfo(accessToken.access_token); var targetAccount = userInfo.Accounts[0]; // 拼接账号专属的API路径 docusignClient.SetBasePath($"{targetAccount.BaseUri}/restapi"); // 后续接口调用 var envelopesApi = new EnvelopesApi(docusignClient); // ... 你的信封创建代码
确认用户ID的正确性
确保传入RequestJWTUserToken的userid是用户的唯一GUID,而非邮箱地址或账号ID。该GUID可在DocuSign管理控制台的用户详情页面查看。验证账号权限
- 确认JWT授权的用户是目标账号的活跃成员
- 确保该用户拥有API访问权限(在账号设置的用户权限面板中开启)
- 修正NuGet包引用
你的csproj中包引用名称有误,官方包名称是DocuSign.eSign,而非DocuSign.eSign.dll,修正后如下:
<ItemGroup> <PackageReference Include="DocuSign.eSign" Version="6.2.0" /> </ItemGroup>
内容的提问来源于stack exchange,提问作者Jordan Wilcken
相关产品推荐
相关产品推荐

