我有一个服务帐户,使用 DocuSign的投票 来检索状态发生变化的信封列表。这些信封由各种内部用户发送。当我去取回信封时,我想检索信封的发件人是谁(发件人姓名和电子邮件)。
我最初将此信息排除在Envelope
对象的一部分之外,但它不是:
Envelope envInfo = envelopesApi.GetEnvelope(AccountId, envelopeId);
我尝试了各种其他API调用和已审核的文档,但它们似乎都没有提供获取发件人姓名和电子邮件的方法。
可以检索这些信息吗?
答案 0 :(得分:2)
实际上有一种方法可以通过API获取信封的发件人姓名和电子邮件。首先,发出获取信封审核事件请求以识别发件人的UserId
。然后,使用UserId
发出获取用户请求以获取发件人的姓名和电子邮件地址。以下是步骤,包括样本请求/响应(为简洁起见省略了无关信息):
1)获取信封审核事件
请求:
GET /accounts/{accountId}/envelopes/{envelopeId}/audit_events
回应:
{
"auditEvents": [
{
"eventFields": [
...
{
"name": "UserName",
"value": "John Doe"
},
{
"name": "UserId",
"value": "af465e97-83a6-472c-a25b-ebad10e4cc6a"
},
{
"name": "Action",
"value": "Registered"
},
{
"name": "Message",
"value": "The envelope was created by John Doe"
},
{
"name": "EnvelopeStatus",
"value": "created"
},
...
]
},
...
]
}
2)获取用户(指定上一回复中的UserId
)
请求:
GET /accounts/{accountId}/users/af465e97-83a6-472c-a25b-ebad10e4cc6a
响应:
{
"userName": "John Doe",
"userId": "af465e97-83a6-472c-a25b-ebad10e4cc6a",
"email": "john.doe@test.com",
"firstName": "John",
"lastName": "Doe",
...
}
另一个选项(如果您使用API开始创建信封)将始终在创建时为每个信封指定包含发件人姓名和电子邮件地址的“自定义信封字段”。这样做可以让您使用您已发出的相同请求检索此信息以检索信封信息(前提是您包含额外的查询字符串参数(include=custom_fields
):
GET accounts/{accountId}/envelopes/{envelopeId}?include=custom_fields
答案 1 :(得分:0)
DocuSign无法以这种方式工作,因为信封链接到用户及其用户的文档,因此除非用户与任何人共享信封,否则任何人都无法访问该文档。因此,没有API会通过在envelopeId上查询DS来通知您发件人的电子邮件/名称。您有两种方法可以实现此要求:
使用DS Connect(推荐方式),在DS中配置Connect Account和DocuSign将推送与发件人的连接消息 订阅触发事件发生时该XML消息中的详细信息
另一种方法是你需要获得所有用户的OAUTH访问令牌 然后调用DS API以了解每个用户的信封
连接消息如下所示:
<UserName>Sender Name</UserName>
<Email>SenderEmail@email.com</Email>