通过 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 上分享

与您共享模板的群组共享文件夹

现在用户(不是原始模板所有者)可以将该模板共享到共享文件夹