通过 API Docusign Shared Templates 文件夹中的模板
Templates inside of Docusign Shared Templates folder through API
从 "My Templates" 部分列出文件夹及其内容(模板)很容易,但似乎没有记录在 "Shared Templates" 部分内列出文件夹和模板。
我正在寻找一种方法来完成与使用 "GET https://{server}/restapi/{apiVersion}/accounts/{accountId}/templates?folder={folder}" 相同的事情,但用于 "Shared Templates" 部分内的文件夹。
我找不到有关此功能的任何文档。
帕克布莱恩,
那就太好了,但您可以通过以下调用获得您想要的。
您将需要在 "shared" 与唯一 "folderName/folderId" 相关联的内容之间建立关联。由于此信息在 Internet 时间很少更改,因此此操作更便宜 (1) 调用,您可以检查它是否已更改或使用已缓存的内容。此外,您还可以在 https://www.docusign.net/restapi/help
查看支持的所有 Rest 方法
GET /restapi/v2/accounts/225705/templates
Host: demo.docusign.net
X-DocuSign-Authentication: {omitted}
Accept: application/json
{
"envelopeTemplates": [
{
"templateId": "1b3e7760-812f-44f1-bc55-445d579fbd8a",
"name": "0001 - Blank1pg.pdf",
"shared": "true",
"password": "",
"description": "Blank Page 1 - Sample",
"lastModified": "2014-07-10T19:04:49.7700000Z",
"pageCount": 1,
"uri": "/templates/1b3e7760-812f-44f1-bc55-445d579fbd8a",
"folderName": "Templates",
"folderId": "5aacfca4-d6ac-4578-9f44-648aef02a7a4",
"folderUri": "/folders/5aacfca4-d6ac-4578-9f44-648aef02a7a4",
"owner": {
"userName": "ProServ Demo SoapUI DocuSign",
"email": "yourname@domain.com",
"userId": "ddcd3fc7-2b3c-40d4-98ed-ff90add317ca"
},
"emailSubject": "Please DocuSign this document: 0001 - Blank1pg.pdf",
"emailBlurb": "",
"signingLocation": "Online",
"authoritativeCopy": "false",
"enableWetSign": "true",
"allowMarkup": "false",
"allowReassign": "true"
},
模板可以通过多种方式共享,它们的return编辑方式和在响应中的显示方式取决于这些模板的共享方式。 API 当前 return 模板不通过 /templates 或 /folders 调用中的共享模板文件夹共享。通过用户或组直接共享的模板将显示在 /templates 调用中,其中包含共享信息,但没有与之关联的文件夹信息。
我已经为这个问题苦苦思索了 2 天,并尝试了很多 API calls/configurations 来解决这个问题。
我认为(如文档中突出显示的那样)可能不支持此功能。
我仍在进一步调查,如果找到解决方案,我会更改此回复。
以下资料是我试过的,最终还是不行。
我提供此信息是为了帮助偶然发现此线程的其他人寻找答案,以了解我在寻找答案时尝试过的内容,同时也是为了让我自己在回到这个问题时更加清楚。
下面代码中 DocusignIntegration::DocusignModel
的使用来自我创建的自定义模型,该模型知道如何在 snake_case (ruby) 和 camelCase (文档签名数据)
我手动将一个模板移动到 local folder
并在 shared folder
中共享了一个模板
以下结果基于 Account::ListSharedAccess
端点,使用以下查询选项。
使用 'folders' 项目类型查询共享访问
options.item_type = 'folders'
options.folder_ids = 'id-for-local-folder,id-for-shared-folder'
Notice that you don't get any information about templates when querying folders
{
"accountId": "040-1111",
"sharedAccess": [
{
"folders": [
{
"folderId": "id-for-local-folder",
"name": "Local Folder",
"uri": "/folder/id-for-local-folder",
"sharedUsers": [
{
"user": {
"userName": "David",
"userId": "30a59"
},
"shared": "shared_to"
}
]
},
{
"folderId": "id-for-shared-folder",
"name": "Shared Folder",
"uri": "/folder/id-for-shared-folder",
"sharedUsers": [
{
"user": {
"userName": "David",
"userId": "30a594"
},
"shared": "shared_to"
}
],
"sharedGroups": [
{
"group": {
"groupId": "7319013",
"groupName": "CanIShareTemplateToFolderViaGroups-TestNo37",
"groupType": "custom"
},
"shared": "shared_to"
}
]
}
]
}
]
}
使用 'templates' 项类型进行查询
options.item_type = 'templates'
options.folder_ids = 'id-for-my-template'
Notice that you don't get any information about folders when querying templates
{
"accountId": "040-1111",
"sharedAccess": [
{
"templates": [
{
"templateId": "id-for-my-template",
"templateName": "red",
"owner": {
"userName": "David",
"userId": "30a594",
},
"sharedGroups": [
{
"group": {
"groupId": "7319013",
"groupName": "CanIShareTemplateToFolderViaGroups-TestNo37",
"groupType": "custom"
},
"shared": "shared_to"
}
]
}
]
}
]
}
使用 'templates' 项目类型更新共享访问
以下用于将模板分配给组的代码符合预期。
options.item_type = 'templates'
def self.share_template_to_group(account_id:, template_id:, group_id:)
# Group group to share with
group = DocusignIntegration::DocusignModel.new(group_id: group_id)
member_group_shared_item = DocusignIntegration::DocusignModel.new(group: group,
shared: 'shared_to')
# What template to share
template_shared_item = DocusignIntegration::DocusignModel.new(template_id: template_id,
shared: 'shared_to',
shared_groups: [member_group_shared_item])
member_shared_item = DocusignIntegration::DocusignModel.new(templates: [template_shared_item])
# Configured AccountSharedAccess object
DocusignIntegration::DocusignModel.new(account_id: account_id,
shared_access: [member_shared_item])
end
{
"accountId": "040-1111",
"sharedAccess": [
{
"user": {
"userName": "David",
"userId": "30a594"
},
"templates": [
{
"templateId": "id-for-my-template",
"sharedGroups": [
{
"group": {
"groupId": "7319013",
"groupName": "CanIShareTemplateToFolderViaGroups-TestNo37",
"groupType": "custom"
},
"shared": "shared_to"
}
]
}
]
}
]
}
正在将模板链接到共享文件夹。
我已经通过 API 尝试了多种技术。
其中一项技术(可以通过代码或 UX 完成)是将模板分配给一个组,然后与该组共享 shared_folder。
不幸的是,这并不意味着模板突然在文件夹中可见,但它确实使属于组的用户能够通过用户界面将模板共享到 shared_folder,因此使其可供组中的所有用户使用。
查看此流程:
Select 在 shared_folder 上分享
与您共享模板的群组共享文件夹
现在用户(不是原始模板所有者)可以将该模板共享到共享文件夹
从 "My Templates" 部分列出文件夹及其内容(模板)很容易,但似乎没有记录在 "Shared Templates" 部分内列出文件夹和模板。
我正在寻找一种方法来完成与使用 "GET https://{server}/restapi/{apiVersion}/accounts/{accountId}/templates?folder={folder}" 相同的事情,但用于 "Shared Templates" 部分内的文件夹。
我找不到有关此功能的任何文档。
帕克布莱恩,
那就太好了,但您可以通过以下调用获得您想要的。 您将需要在 "shared" 与唯一 "folderName/folderId" 相关联的内容之间建立关联。由于此信息在 Internet 时间很少更改,因此此操作更便宜 (1) 调用,您可以检查它是否已更改或使用已缓存的内容。此外,您还可以在 https://www.docusign.net/restapi/help
查看支持的所有 Rest 方法GET /restapi/v2/accounts/225705/templates
Host: demo.docusign.net
X-DocuSign-Authentication: {omitted}
Accept: application/json
{
"envelopeTemplates": [
{
"templateId": "1b3e7760-812f-44f1-bc55-445d579fbd8a",
"name": "0001 - Blank1pg.pdf",
"shared": "true",
"password": "",
"description": "Blank Page 1 - Sample",
"lastModified": "2014-07-10T19:04:49.7700000Z",
"pageCount": 1,
"uri": "/templates/1b3e7760-812f-44f1-bc55-445d579fbd8a",
"folderName": "Templates",
"folderId": "5aacfca4-d6ac-4578-9f44-648aef02a7a4",
"folderUri": "/folders/5aacfca4-d6ac-4578-9f44-648aef02a7a4",
"owner": {
"userName": "ProServ Demo SoapUI DocuSign",
"email": "yourname@domain.com",
"userId": "ddcd3fc7-2b3c-40d4-98ed-ff90add317ca"
},
"emailSubject": "Please DocuSign this document: 0001 - Blank1pg.pdf",
"emailBlurb": "",
"signingLocation": "Online",
"authoritativeCopy": "false",
"enableWetSign": "true",
"allowMarkup": "false",
"allowReassign": "true"
},
模板可以通过多种方式共享,它们的return编辑方式和在响应中的显示方式取决于这些模板的共享方式。 API 当前 return 模板不通过 /templates 或 /folders 调用中的共享模板文件夹共享。通过用户或组直接共享的模板将显示在 /templates 调用中,其中包含共享信息,但没有与之关联的文件夹信息。
我已经为这个问题苦苦思索了 2 天,并尝试了很多 API calls/configurations 来解决这个问题。
我认为(如文档中突出显示的那样)可能不支持此功能。
我仍在进一步调查,如果找到解决方案,我会更改此回复。
以下资料是我试过的,最终还是不行。
我提供此信息是为了帮助偶然发现此线程的其他人寻找答案,以了解我在寻找答案时尝试过的内容,同时也是为了让我自己在回到这个问题时更加清楚。
下面代码中 DocusignIntegration::DocusignModel
的使用来自我创建的自定义模型,该模型知道如何在 snake_case (ruby) 和 camelCase (文档签名数据)
我手动将一个模板移动到 local folder
并在 shared folder
以下结果基于 Account::ListSharedAccess
端点,使用以下查询选项。
使用 'folders' 项目类型查询共享访问
options.item_type = 'folders'
options.folder_ids = 'id-for-local-folder,id-for-shared-folder'
Notice that you don't get any information about templates when querying folders
{
"accountId": "040-1111",
"sharedAccess": [
{
"folders": [
{
"folderId": "id-for-local-folder",
"name": "Local Folder",
"uri": "/folder/id-for-local-folder",
"sharedUsers": [
{
"user": {
"userName": "David",
"userId": "30a59"
},
"shared": "shared_to"
}
]
},
{
"folderId": "id-for-shared-folder",
"name": "Shared Folder",
"uri": "/folder/id-for-shared-folder",
"sharedUsers": [
{
"user": {
"userName": "David",
"userId": "30a594"
},
"shared": "shared_to"
}
],
"sharedGroups": [
{
"group": {
"groupId": "7319013",
"groupName": "CanIShareTemplateToFolderViaGroups-TestNo37",
"groupType": "custom"
},
"shared": "shared_to"
}
]
}
]
}
]
}
使用 'templates' 项类型进行查询
options.item_type = 'templates'
options.folder_ids = 'id-for-my-template'
Notice that you don't get any information about folders when querying templates
{
"accountId": "040-1111",
"sharedAccess": [
{
"templates": [
{
"templateId": "id-for-my-template",
"templateName": "red",
"owner": {
"userName": "David",
"userId": "30a594",
},
"sharedGroups": [
{
"group": {
"groupId": "7319013",
"groupName": "CanIShareTemplateToFolderViaGroups-TestNo37",
"groupType": "custom"
},
"shared": "shared_to"
}
]
}
]
}
]
}
使用 'templates' 项目类型更新共享访问
以下用于将模板分配给组的代码符合预期。
options.item_type = 'templates'
def self.share_template_to_group(account_id:, template_id:, group_id:)
# Group group to share with
group = DocusignIntegration::DocusignModel.new(group_id: group_id)
member_group_shared_item = DocusignIntegration::DocusignModel.new(group: group,
shared: 'shared_to')
# What template to share
template_shared_item = DocusignIntegration::DocusignModel.new(template_id: template_id,
shared: 'shared_to',
shared_groups: [member_group_shared_item])
member_shared_item = DocusignIntegration::DocusignModel.new(templates: [template_shared_item])
# Configured AccountSharedAccess object
DocusignIntegration::DocusignModel.new(account_id: account_id,
shared_access: [member_shared_item])
end
{
"accountId": "040-1111",
"sharedAccess": [
{
"user": {
"userName": "David",
"userId": "30a594"
},
"templates": [
{
"templateId": "id-for-my-template",
"sharedGroups": [
{
"group": {
"groupId": "7319013",
"groupName": "CanIShareTemplateToFolderViaGroups-TestNo37",
"groupType": "custom"
},
"shared": "shared_to"
}
]
}
]
}
]
}
正在将模板链接到共享文件夹。
我已经通过 API 尝试了多种技术。
其中一项技术(可以通过代码或 UX 完成)是将模板分配给一个组,然后与该组共享 shared_folder。
不幸的是,这并不意味着模板突然在文件夹中可见,但它确实使属于组的用户能够通过用户界面将模板共享到 shared_folder,因此使其可供组中的所有用户使用。
查看此流程:
Select 在 shared_folder 上分享
与您共享模板的群组共享文件夹
现在用户(不是原始模板所有者)可以将该模板共享到共享文件夹