开始使用 Adobe Connect Web Services

了解一些关键概念以及基础知识,以开始使用 Adobe Connect Web Service API。

要开始使用 Adobe Connect Web Services,需要 了解三个关键概念:

  • 主体, 即用户和用户组

  • SCO, 即可共享内容对象,包含会议、课程以及 几乎所有可以在 Adob​​e Connect 上创建的内容。 SCO(发音为 sko, 与 snow 押韵)符合行业标准 可共享内容对象参考模型 (SCORM) 规范, 可以在学习管理系统 (LMS) 中使用。

  • 权限,定义主体可以对对象执行的操作

本章介绍了可以使用 Web Services 执行的基本任务, 与授予许可的 Adob​​e Connect 应用程序无关。 根据任务描述,许多任务应在浏览器中执行。 如果希望从应用程序进行调用,请将 XML 请求转换为使用的语言(有关 如何在 Java™ 中执行此操作的示例,请参阅发送 XML 请求)。

查找 principal-id

主体是 拥有明确权限可与服务器上的 SCO 交互的用户或用户组。 您 可以为所在组织创建用户和用户组,并修改其 权限。

Adobe Connect 还拥有以下内置用户组: 管理员、受限管理员、作者、培训管理者、 活动管理者、学员、会议主持人和研讨会主持人。 您 可以向内置用户组添加用户和用户组,但无法修改 组内权限。

注意:

内置用户组的可用性 因帐户而异。

所有 Adob​​e Connect 用户和用户组都有 principal-id。 在一些 API 调用中,principal-id 也称为 group-iduser-id,以与其他值区别开来。 标识用户或用户组的 ID 值始终相同,与其名称无关。

获取 用户或用户组的 principal-id

  1. 使用过滤器调用 principal-list

     https://example.com/api/xml?action=principal-list&filter-name=jazz doe
     https://example.com/api/xml?action=principal-list&filter-name=jazz doe
     https://example.com/api/xml?action=principal-list&filter-name=jazz doe

    最好使用 filter-namefilter-loginfilter-email,以实现精确匹配。 filter-like-name 很可能会影响服务器性能,因此请谨慎使用。

  2. 解析响应中的 principal 元素, 以获取 principal-id

    <principal principal-id=&quot;2006282569&quot; account-id=&quot;624520&quot; type=&quot;user&quot;
      has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>
    <name>jazz doe</name>
    <login>jazzdoe@example.com</login>
    <email>jazzdoe@newcompany.com</email>
    </principal>
     <principal principal-id=&quot;2006282569&quot; account-id=&quot;624520&quot; type=&quot;user&quot;   has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>   <name>jazz doe</name>   <login>jazzdoe@example.com</login>   <email>jazzdoe@newcompany.com</email>  </principal>
     <principal principal-id=&quot;2006282569&quot; account-id=&quot;624520&quot; type=&quot;user&quot; 
             has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;> 
         <name>jazz doe</name>  
         <login>jazzdoe@example.com</login>  
         <email>jazzdoe@newcompany.com</email>  
     </principal>

获取 当前用户的 principal-id

  1. 用户登录后, 调用 common-info

     https://example.com/api/xml?action=common-info
     https://example.com/api/xml?action=common-info
     https://example.com/api/xml?action=common-info
  2. 解析响应中的 user 元素,以获取 user-id

    <user user-id=&quot;2007124930&quot; type=&quot;user&quot;>
    <name>jazz doe</name>
    <login>jazz@doe.com</login>
    </user>
     <user user-id=&quot;2007124930&quot; type=&quot;user&quot;>   <name>jazz doe</name>   <login>jazz@doe.com</login>  </user>
     <user user-id=&quot;2007124930&quot; type=&quot;user&quot;> 
             <name>jazz doe</name>  
             <login>jazz@doe.com</login>  
     </user>

    本例中,principal-id 也称为 user-id,始终表示 已通过 Adob​​e Connect 身份验证的用户。 用户组无法登录到 服务器。 您可以在其他操作中将 user-id 值作为 principal-id 传递 。

列出主体或客人

type 为“主体”的用户是 Adobe Connect 注册用户,而 type“客人”的用户 则是以客人身份进入会议室的用户。 服务器可捕获 客人信息,并为其提供 principal-id

列出 服务器上的所有主体

  1. 在不使用参数的情况下调用 principal-list

     https://example.com/api/xml?action=principal-list
     https://example.com/api/xml?action=principal-list
     https://example.com/api/xml?action=principal-list

    此 调用会返回所有 Adob​​e Connect 用户,因此请做好应对大量 响应的准备。

  2. 解析响应中的 principal 元素, 以获取所需值:

    <principal principal-id=&quot;2006282569&quot; account-id=&quot;624520&quot; type=&quot;user&quot;
      has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>
    <name>jazz doe</name>
    <login>jazzdoe@example.com</login>
    <email>jazzdoe@newcompany.com</email>
    </principal>
     <principal principal-id=&quot;2006282569&quot; account-id=&quot;624520&quot; type=&quot;user&quot;   has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>   <name>jazz doe</name>   <login>jazzdoe@example.com</login>   <email>jazzdoe@newcompany.com</email>  </principal>
     <principal principal-id=&quot;2006282569&quot; account-id=&quot;624520&quot; type=&quot;user&quot; 
             has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;> 
         <name>jazz doe</name>  
         <login>jazzdoe@example.com</login>  
         <email>jazzdoe@newcompany.com</email>  
     </principal>

列出 服务器上的所有客人

  1. 调用 report-bulk-users,过滤某种类型的客人:

     https://example.com/api/xml?action=report-bulk-users&filter-type=guest
     https://example.com/api/xml?action=report-bulk-users&filter-type=guest
     https://example.com/api/xml?action=report-bulk-users&filter-type=guest
  2. 解析响应中的 row 元素:

    <row principal-id=&quot;51157227&quot;>
    <login>joy@acme.com</login>
    <name>joy@acme.com</name>
    <email>joy@acme.com</email>
    <type>guest</type>
    </row>
     <row principal-id=&quot;51157227&quot;>   <login>joy@acme.com</login>   <name>joy@acme.com</name>   <email>joy@acme.com</email>   <type>guest</type>  </row>
     <row principal-id=&quot;51157227&quot;> 
         <login>joy@acme.com</login>  
         <name>joy@acme.com</name>  
         <email>joy@acme.com</email>  
         <type>guest</type>  
     </row>

列出 向特定管理者报告的所有用户

使用 principal-id 调用 principal-info 时 ,响应会显示该主体。 如果在 Adob​​e Connect 中已为该主体分配管理者, 则响应还会在 manager 元素中显示该主体管理者的数据:

<manager account-id=&quot;624520&quot; disabled=&quot;&quot; has-children=&quot;false&quot; is-hidden=&quot;false&quot; is-primary=&quot;false&quot; principal-id=&quot;2006282569&quot; type=&quot;user&quot;>
<ext-login>jazzdoe@example.com</ext-login>
<login>jazzdoe@example.com</login>
<name>jazz doe</name>
<email>joy@example.com</email>
<first-name>jazz</first-name>
<last-name>doe</last-name>
<x-2006293620>23456</x-2006293620>
<x-2007017651>chicago</x-2007017651>
</manager>
 <manager account-id=&quot;624520&quot; disabled=&quot;&quot; has-children=&quot;false&quot; is-hidden=&quot;false&quot; is-primary=&quot;false&quot; principal-id=&quot;2006282569&quot; type=&quot;user&quot;>   <ext-login>jazzdoe@example.com</ext-login>   <login>jazzdoe@example.com</login>   <name>jazz doe</name>   <email>joy@example.com</email>   <first-name>jazz</first-name>   <last-name>doe</last-name>   <x-2006293620>23456</x-2006293620>   <x-2007017651>chicago</x-2007017651>  </manager>
 <manager account-id=&quot;624520&quot; disabled=&quot;&quot; has-children=&quot;false&quot; is-hidden=&quot;false&quot; is-primary=&quot;false&quot; principal-id=&quot;2006282569&quot;        type=&quot;user&quot;> 
     <ext-login>jazzdoe@example.com</ext-login>  
     <login>jazzdoe@example.com</login>  
     <name>jazz doe</name>  
     <email>joy@example.com</email>  
     <first-name>jazz</first-name>  
     <last-name>doe</last-name>  
     <x-2006293620>23456</x-2006293620>  
     <x-2007017651>chicago</x-2007017651>  
 </manager>

您可以同时使用管理者的 principal-idprincipal-list, 列出分配给该管理者的所有用户。

  1. 调用 principal-list,根据 manager-id 进行过滤:

     https://example.com/api/xml?action=principal-list &filter-manager-id=2006282569
     https://example.com/api/xml?action=principal-list &filter-manager-id=2006282569
     https://example.com/api/xml?action=principal-list    &filter-manager-id=2006282569
  2. 解析响应,以获取 principal 元素:

    <principal principal-id=&quot;2006258745&quot; account-id=&quot;624520&quot; type=&quot;user&quot; has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot; manager-id=&quot;2006282569&quot;>
    <name>Pat Lee</name>
    <login>plee@mycompany.com</login>
    <email>plee@mycompany.com</email>
    </principal>
     <principal principal-id=&quot;2006258745&quot; account-id=&quot;624520&quot; type=&quot;user&quot; has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot; manager-id=&quot;2006282569&quot;>   <name>Pat Lee</name>   <login>plee@mycompany.com</login>   <email>plee@mycompany.com</email>  </principal>
     <principal principal-id=&quot;2006258745&quot; account-id=&quot;624520&quot; type=&quot;user&quot; has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot; manager-id=&quot;2006282569&quot;> 
         <name>Pat Lee</name>  
         <login>plee@mycompany.com</login>  
         <email>plee@mycompany.com</email>  
     </principal>

创建用户

要 创建新用户,需要具备管理员权限。 Adobe 建议 创建属于“管理员”用户组 的用户,便于应用程序进行需要管理员 权限的 API 调用。

创建 新用户并发送欢迎电子邮件

  1. 在应用程序中,以管理员用户 身份登录。

    有关各种 登录方式,请参阅使用应用程序登录

  2. 至少使用以下参数调用 principal-update

     https://example.com/api/xml?action=principal-update
      &first-name=jazz&last-name=doe&login=jazz99@doe.com&password=hello
      &type=user&send-email=true&has-children=0&email=jazz99@doe.com
     https://example.com/api/xml?action=principal-update   &first-name=jazz&last-name=doe&login=jazz99@doe.com&password=hello   &type=user&send-email=true&has-children=0&email=jazz99@doe.com
     https://example.com/api/xml?action=principal-update 
             &first-name=jazz&last-name=doe&login=jazz99@doe.com&password=hello 
             &type=user&send-email=true&has-children=0&email=jazz99@doe.com

    type 必须 为 userhas-children 必须为 0falsesend-email 必须 为 trueemail 必须为 有效的电子邮件地址。

    服务器会向用户的电子邮件地址发送带有 登录信息的欢迎电子邮件。

  3. 解析响应中的 principal 元素,以获取用户的 principal-id

    <principal type=&quot;user&quot; principal-id=&quot;2007184341&quot; has-children=&quot;0&quot;
      account-id=&quot;624520&quot;>
    <login>jammdoe@example.com</login>
    <ext-login>jammdoe@example.com</ext-login>
    <name>jamm doe</name>
    </principal>
     <principal type=&quot;user&quot; principal-id=&quot;2007184341&quot; has-children=&quot;0&quot;   account-id=&quot;624520&quot;>   <login>jammdoe@example.com</login>   <ext-login>jammdoe@example.com</ext-login>   <name>jamm doe</name>  </principal>
     <principal type=&quot;user&quot; principal-id=&quot;2007184341&quot; has-children=&quot;0&quot; 
             account-id=&quot;624520&quot;> 
         <login>jammdoe@example.com</login>  
         <ext-login>jammdoe@example.com</ext-login>  
         <name>jamm doe</name>  
     </principal>

在不使用电子邮件地址作为登录 ID 的情况下 创建新用户

  1. 在 Adobe Connect Central 中, 导航至“管理”>“用户和用户组”>“编辑登录名 和口令策略”。 确保将“使用电子邮件地址作为登录名” 设置为“否”。

  2. 在应用程序中,以管理员用户身份登录。

  3. 调用 principal-update 以创建新用户,同时传递 loginemail 参数:

     https://example.com/api/xml?action=principal-update&first-name=jazz
      &last-name=doe&login=jazz&email=jazzdoe@company.com
      &password=nothing&type=user&has-children=0
     https://example.com/api/xml?action=principal-update&first-name=jazz   &last-name=doe&login=jazz&email=jazzdoe@company.com   &password=nothing&type=user&has-children=0
     https://example.com/api/xml?action=principal-update&first-name=jazz 
         &last-name=doe&login=jazz&email=jazzdoe@company.com 
         &password=nothing&type=user&has-children=0
  4. 解析响应,以获取 新用户的 principal-id

    <principal type=&quot;user&quot; principal-id=&quot;2007184341&quot; has-children=&quot;0&quot;
      account-id=&quot;624520&quot;>
    <login>jazzdoe@example.com</login>
    <ext-login>jazzdoe@example.com</ext-login>
    <name>jazz doe</name>
    </principal>
     <principal type=&quot;user&quot; principal-id=&quot;2007184341&quot; has-children=&quot;0&quot;   account-id=&quot;624520&quot;>   <login>jazzdoe@example.com</login>   <ext-login>jazzdoe@example.com</ext-login>   <name>jazz doe</name>  </principal>
     <principal type=&quot;user&quot; principal-id=&quot;2007184341&quot; has-children=&quot;0&quot; 
                 account-id=&quot;624520&quot;> 
         <login>jazzdoe@example.com</login>  
         <ext-login>jazzdoe@example.com</ext-login>  
         <name>jazz doe</name>  
     </principal>

    在响应中,默认情况下,在用户 使用外部身份验证成功登录(请参阅使用 HTTP 头身份验证登录)之前,ext-loginlogin 具有相同的值。

更新用户

创建用户后,需要经常更新其信息。 您可以使用用户的 principal-id 调用 principal-update, 以此更新 Adobe Connect 为用户定义的标准字段 。 标准字段包括 emailloginfirst-name 以及 last-name

如果已为主体定义自定义字段,请使用 acl-field-update 对其进行更新 。

您需要具备管理员权限才能更新用户,因此在应用程序中, 必须首先以“管理员”用户组中的用户身份登录。 您不能以用户身份登录,然后让用户更新 自己的配置文件。

更新 标准用户信息

  1. 以管理员用户身份 登录。

  2. 使用过滤器调用 principal-list, 以获取用户的 principal-id(请参阅查找 principal-id)。

  3. 调用 principal-update 以更新用户:

     https://example.com/api/xml?action=principal-update
      &principal-id=2006282569&email=jazzdoe@newcompany.com
     https://example.com/api/xml?action=principal-update   &principal-id=2006282569&email=jazzdoe@newcompany.com
     https://example.com/api/xml?action=principal-update 
         &principal-id=2006282569&email=jazzdoe@newcompany.com
  4. 解析响应,以获取 ok 的状态码。

更新 用户的自定义字段值

  1. 以管理员用户身份登录 。

  2. 调用 custom-fields,以获取自定义字段的 field-id

     https://example.com/api/xml?action=custom-fields
     https://example.com/api/xml?action=custom-fields
     https://example.com/api/xml?action=custom-fields
  3. 获取希望更新的 principal-idsco-idaccount-id

    该值 是传递给 acl-field-updateacl-id

  4. 调用 acl-field-update,以更新自定义字段的值 :

     https://example.com/api/xml?action=acl-field-update&field-id=x-2007396975&acl-id=2006258745&value=44444
     https://example.com/api/xml?action=acl-field-update&field-id=x-2007396975&acl-id=2006258745&value=44444
     https://example.com/api/xml?action=acl-field-update&field-id=x-2007396975&acl-id=2006258745&value=44444

创建自定义字段

自定义 字段是您定义的附加数据字段。 您可以使用 custom-field-update,在主体或 SCO 上定义 多达八个自定义字段。

定义自定义字段之后,默认情况下,可以在 Adobe Connect Central 中编辑该值或 调用 custom-field-update 来设置其值 。

如需指定只能通过 API 更新该值,请使用参数 object-type=object-type-read-only 调用 custom-field-update

定义 自定义字段,并根据用户进行设置

  1. 首先,使用 custom-field-update 创建字段 :

     https://example.com/api/xml?action=custom-field-update
      &object-type=object-type-principal&permission-id=manage
      &account-id=624520&name=Location&comments=adobe%20location
      &field-type=text&is-required=true&is-primary=false&display-seq=9
     https://example.com/api/xml?action=custom-field-update   &object-type=object-type-principal&permission-id=manage   &account-id=624520&name=Location&comments=adobe%20location   &field-type=text&is-required=true&is-primary=false&display-seq=9
     https://example.com/api/xml?action=custom-field-update 
         &object-type=object-type-principal&permission-id=manage 
         &account-id=624520&name=Location&comments=adobe%20location 
         &field-type=text&is-required=true&is-primary=false&display-seq=9

    name 字段 可定义应用程序显示的字段名称,因此请 正确拼写,区分大小写。 本例中的自定义字段适用于 所有 Adob​​e Connect 主体。

  2. 解析响应中的 field 元素, 以获取 field-id

    <field field-id=&quot;2007184366&quot; object-type=&quot;object-type-principal&quot;
      display-seq=&quot;9&quot; account-id=&quot;624520&quot; is-primary=&quot;false&quot;
      permission-id=&quot;manage&quot; is-required=&quot;true&quot; field-type=&quot;text&quot;>
    <comments>test</comments>
    <name>Country</name>
    </field>
     <field field-id=&quot;2007184366&quot; object-type=&quot;object-type-principal&quot;   display-seq=&quot;9&quot; account-id=&quot;624520&quot; is-primary=&quot;false&quot;   permission-id=&quot;manage&quot; is-required=&quot;true&quot; field-type=&quot;text&quot;>  <comments>test</comments>  <name>Country</name>  </field>
     <field field-id=&quot;2007184366&quot; object-type=&quot;object-type-principal&quot; 
             display-seq=&quot;9&quot; account-id=&quot;624520&quot; is-primary=&quot;false&quot;  
             permission-id=&quot;manage&quot; is-required=&quot;true&quot; field-type=&quot;text&quot;> 
     <comments>test</comments>  
     <name>Country</name>  
     </field>
  3. 获取用户的 principal-id(请参阅查找 principal-id)。

  4. 调用 acl-field-update,以设置 该字段的值,同时传递 field-id、作为 acl-id 的用户 principal-id, 以及一个值:

     https://example.com/api/xml?action=acl-field-update
      &acl-id=2006258745&field-id=2007017474&value=San%20Francisco
     https://example.com/api/xml?action=acl-field-update   &acl-id=2006258745&field-id=2007017474&value=San%20Francisco
     https://example.com/api/xml?action=acl-field-update 
         &acl-id=2006258745&field-id=2007017474&value=San%20Francisco
  5. 解析响应,以获取 ok 的状态码。

创建用户组

要 将用户添加到用户组,需要以 应用程序管理员用户的身份调用 principal-update

将用户添加到用户组

  1. 以应用程序管理员用户的身份登录。

  2. (可选)如果用户尚不存在,请使用 principal-update 创建用户。

     https://example.com/api/xml?action=principal-update
      &first-name=jazzwayjazz&last-name=doe&login=jazz@doe.com
      &password=nothing&type=user&has-children=0
     https://example.com/api/xml?action=principal-update   &first-name=jazzwayjazz&last-name=doe&login=jazz@doe.com   &password=nothing&type=user&has-children=0
     https://example.com/api/xml?action=principal-update 
         &first-name=jazzwayjazz&last-name=doe&login=jazz@doe.com 
         &password=nothing&type=user&has-children=0
  3. (可选)解析响应,以获取新用户的 principal-id

  4. 如果用户已经存在,请调用 principal-list,以获取 用户的 principal-id

     https://example.com/api/xml?action=principal-list&filter-type=user
     https://example.com/api/xml?action=principal-list&filter-type=user
     https://example.com/api/xml?action=principal-list&filter-type=user
  5. 解析响应,以获取 principal-id

    <principal principal-id=&quot;5611980&quot; account-id=&quot;624520&quot; type=&quot;user&quot;
      has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>
    <name>Joy Black</name>
    <login>joy@acme.com</login>
    <email>joy@acme.com</email>
    </principal>
     <principal principal-id=&quot;5611980&quot; account-id=&quot;624520&quot; type=&quot;user&quot;   has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>   <name>Joy Black</name>   <login>joy@acme.com</login>   <email>joy@acme.com</email>  </principal>
     <principal principal-id=&quot;5611980&quot; account-id=&quot;624520&quot; type=&quot;user&quot;  
             has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;> 
         <name>Joy Black</name>  
         <login>joy@acme.com</login>  
         <email>joy@acme.com</email>  
     </principal>
  6. 再次调用 principal-list,以获取用户组的 principal-id

     https://example.com/api/xml?action=principal-list&filter-type=group
     https://example.com/api/xml?action=principal-list&filter-type=group
     https://example.com/api/xml?action=principal-list&filter-type=group
  7. 使用 is-member=true 调用 group-membership-update, 以将用户添加到用户组:

     https://example.com/api/xml?action=group-membership-update
      &group-id=4930296&principal-id=2006258745&is-member=true
     https://example.com/api/xml?action=group-membership-update   &group-id=4930296&principal-id=2006258745&is-member=true
     https://example.com/api/xml?action=group-membership-update 
         &group-id=4930296&principal-id=2006258745&is-member=true
    • principal-id 是用户的 principal-id

    • group-id 是用户组的 principal-id

    • 参数 is-member 必须为 true

检查 用户组中是否存在特定用户

  1. 使用 group-idfilter-is-member 以及可标识主体的过滤器调用 principal-list

     https://example.com/api/xml?action=principal-list&group-id=624523
      &filter-is-member=true&filter-like-name=bob
     https://example.com/api/xml?action=principal-list&group-id=624523   &filter-is-member=true&filter-like-name=bob
     https://example.com/api/xml?action=principal-list&group-id=624523 
             &filter-is-member=true&filter-like-name=bob
  2. 解析响应中的 principal 元素。 成功的响应如下所示:

    <principal-list>
    <principal principal-id=&quot;624660&quot; account-id=&quot;624520&quot; type=&quot;user&quot;
      has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>
    <name>Bill Jones</name>
    <login>bjones@acme.com</login>
    <email>bjones@acme.com</email>
    <is-member>true</is-member>
    </principal>
    </principal-list>
     <principal-list>   <principal principal-id=&quot;624660&quot; account-id=&quot;624520&quot; type=&quot;user&quot;   has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>   <name>Bill Jones</name>   <login>bjones@acme.com</login>   <email>bjones@acme.com</email>   <is-member>true</is-member>   </principal>  </principal-list>
     <principal-list> 
         <principal principal-id=&quot;624660&quot; account-id=&quot;624520&quot; type=&quot;user&quot;  
                 has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;> 
             <name>Bill Jones</name>  
             <login>bjones@acme.com</login>  
             <email>bjones@acme.com</email>  
             <is-member>true</is-member>  
         </principal> 
     </principal-list>

    如果用户不是用户组 成员,则 principal-list 元素为空:

    <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?>
    <results>
    <status code=&quot;ok&quot; />
    <principal-list />
    </results>
     <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?>  <results>   <status code=&quot;ok&quot; />   <principal-list />  </results>
     <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?>  
     <results> 
         <status code=&quot;ok&quot; />  
         <principal-list />  
     </results>

检查 用户组中有哪些用户

  1. 要获取用户组的 principal-id, 请使用过滤器调用 principal-list

     https://example.com/api/xml?action=principal-list&filter-type=group
      &filter-name=developers
     https://example.com/api/xml?action=principal-list&filter-type=group   &filter-name=developers
     https://example.com/api/xml?action=principal-list&filter-type=group 
             &filter-name=developers

    使用 filter-typefilter-name 调用 principal-list,可 返回唯一匹配项。

  2. 解析响应,以获取 principal-id

    <principal principal-id=&quot;2007105030&quot; account-id=&quot;624520&quot;
      type=&quot;group&quot; has-children=&quot;true&quot; is-primary=&quot;false&quot;
      is-hidden=&quot;false&quot;>
    <name>developers</name>
    <login>developers</login>
    <is-member>false</is-member>
    </principal>
     <principal principal-id=&quot;2007105030&quot; account-id=&quot;624520&quot;   type=&quot;group&quot; has-children=&quot;true&quot; is-primary=&quot;false&quot;   is-hidden=&quot;false&quot;>   <name>developers</name>   <login>developers</login>   <is-member>false</is-member>  </principal>
     <principal principal-id=&quot;2007105030&quot; account-id=&quot;624520&quot;  
             type=&quot;group&quot; has-children=&quot;true&quot; is-primary=&quot;false&quot;  
             is-hidden=&quot;false&quot;> 
         <name>developers</name>  
         <login>developers</login>  
         <is-member>false</is-member>  
     </principal>
  3. 使用 principal-id 作为 group-id 以及 filter-is-member=true,再次调用 principal-list

     https://example.com/api/xml?action=principal-list&group-id=2007105030
      &filter-is-member=true
     https://example.com/api/xml?action=principal-list&group-id=2007105030   &filter-is-member=true
     https://example.com/api/xml?action=principal-list&group-id=2007105030 
             &filter-is-member=true
  4. 解析响应,以获取 principal 元素:

    <principal principal-id=&quot;5698354&quot; account-id=&quot;624520&quot; type=&quot;group&quot;
      has-children=&quot;true&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>
    <name>Bob Jones</name>
    <login>bobjones@acme.com</login>
    <is-member>true</is-member>
    </principal>
     <principal principal-id=&quot;5698354&quot; account-id=&quot;624520&quot; type=&quot;group&quot;   has-children=&quot;true&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>   <name>Bob Jones</name>   <login>bobjones@acme.com</login>   <is-member>true</is-member>  </principal>
     <principal principal-id=&quot;5698354&quot; account-id=&quot;624520&quot; type=&quot;group&quot;  
                 has-children=&quot;true&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;> 
         <name>Bob Jones</name>  
         <login>bobjones@acme.com</login>  
         <is-member>true</is-member>  
     </principal>

列出 用户所属的全部用户组

  1. 使用用户的 principal-idfilter-is-member=true 调用 principal-list

     https://example.com/api/xml?action=principal-list
      &principal-id=2006258745&filter-is-member=true
     https://example.com/api/xml?action=principal-list   &principal-id=2006258745&filter-is-member=true
     https://example.com/api/xml?action=principal-list 
         &principal-id=2006258745&filter-is-member=true
  2. 解析响应,以获取 principal 元素:

    <principal principal-id=&quot;5698354&quot; account-id=&quot;624520&quot; type=&quot;group&quot;
      has-children=&quot;true&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>
    <name>Bob Jones</name>
    <login>bobjones@acme.com</login>
    <is-member>true</is-member>
    </principal>
     <principal principal-id=&quot;5698354&quot; account-id=&quot;624520&quot; type=&quot;group&quot;   has-children=&quot;true&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;>   <name>Bob Jones</name>   <login>bobjones@acme.com</login>   <is-member>true</is-member>  </principal>
     <principal principal-id=&quot;5698354&quot; account-id=&quot;624520&quot; type=&quot;group&quot;  
                 has-children=&quot;true&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;> 
         <name>Bob Jones</name>  
         <login>bobjones@acme.com</login>  
         <is-member>true</is-member>  
     </principal>

查找 SCO

Adobe Connect 上的所有对象均为可共享内容对象 (SCO)。 “可共享”一词源于学习管理系统 ,该系统将内容合并到课程或课程表中,并在 课程或课程表中共享。

在服务器上,SCO 可以是与其他内容对象组合成 课程或课程表的任何内容对象。 课程、 课程表、演示文稿和其他类型的内容都属于 SCO。 会议、活动、文件夹、树、链接、图形文件或任何 其他对象也属于 SCO。

每个 SCO 都有 唯一的整数标识符,称为 sco-idsco-id 在整个服务器中都具有唯一性。 sco-id 在所有 Adob​​e Connect 托管帐户中具有唯一性。

SCO 也可按类型划分,如内容课程会议 等。 您可以在 sco-info 或其他操作的响应中 看到 sco-idtype 值:

<sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot; folder-id=&quot;2006258747&quot;
  icon=&quot;producer&quot; lang=&quot;en&quot; max-retries=&quot;&quot; sco-id=&quot;2006334909&quot;
  source-sco-id=&quot;&quot; type=&quot;content&quot; version=&quot;1&quot;>
 <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot; folder-id=&quot;2006258747&quot;   icon=&quot;producer&quot; lang=&quot;en&quot; max-retries=&quot;&quot; sco-id=&quot;2006334909&quot;   source-sco-id=&quot;&quot; type=&quot;content&quot; version=&quot;1&quot;>
 <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot; folder-id=&quot;2006258747&quot; 
         icon=&quot;producer&quot; lang=&quot;en&quot; max-retries=&quot;&quot; sco-id=&quot;2006334909&quot; 
         source-sco-id=&quot;&quot; type=&quot;content&quot; version=&quot;1&quot;>

SCO 的特征

研究各种调用的 XML 响应时,您会注意到 更多 SCO 的特征:

  • SCO 的标识符在 某些操作中称为 sco-id,但在其他操作中也可以称为 folder-idacl-id 或其他名称。 此 ID 相同且具唯一性。

  • 所有 SCO 都可以由不同主体(用户或用户组)访问 。 访问控制列表 (ACL) 中定义了 可以访问 SCO 的特定主体。

  • 每个 SCO 的唯一 URL 由两部分组成:域名 (如 http://example.com)和 URL 路径(如 /f2006123456/)。 您可以将这些部分连接起来,形成访问 SCO 的完整 URL。

  • 每个 SCO 都有一个导航路径,用于描述其在 文件夹层次结构中的位置。

  • 可针对有权访问 SCO 的各个主体 分别定义其权限。

  • 一些 SCO 具有描述字段,即文本字符串 ,可为您提供有关 SCO 的信息。

通常,您需要找到 SCO 的 ID 或一些相关信息。 SCO 按特定的文件夹层次结构排列,其中文件夹的 名称表明 SCO 是位于顶层、包含 共享内容或模板,还是保存用户内容和模板。

调用 sco-shortcuts 时,会返回文件夹清单。 请注意,文件夹具有不同的类型:

<?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?>
<results>
<status code=&quot;ok&quot; />
<shortcuts>
<sco tree-id=&quot;624530&quot; sco-id=&quot;2006258751&quot; type=&quot;my-meeting-templates&quot;>
<domain-name>http://example.com</domain-name>
</sco>
<sco tree-id=&quot;624530&quot; sco-id=&quot;2006258750&quot; type=&quot;my-meetings&quot;>
<domain-name>http://example.com</domain-name>
</sco>
<sco tree-id=&quot;624529&quot; sco-id=&quot;624529&quot; type=&quot;meetings&quot;>
<domain-name>http://example.com</domain-name>
</sco>
<sco tree-id=&quot;624530&quot; sco-id=&quot;624530&quot; type=&quot;user-meetings&quot;>
<domain-name>http://example.com</domain-name>
</sco>
  ...
</shortcuts>
</results>
 <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?>  <results>   <status code=&quot;ok&quot; />   <shortcuts>   <sco tree-id=&quot;624530&quot; sco-id=&quot;2006258751&quot; type=&quot;my-meeting-templates&quot;>   <domain-name>http://example.com</domain-name>   </sco>   <sco tree-id=&quot;624530&quot; sco-id=&quot;2006258750&quot; type=&quot;my-meetings&quot;>   <domain-name>http://example.com</domain-name>   </sco>   <sco tree-id=&quot;624529&quot; sco-id=&quot;624529&quot; type=&quot;meetings&quot;>   <domain-name>http://example.com</domain-name>   </sco>   <sco tree-id=&quot;624530&quot; sco-id=&quot;624530&quot; type=&quot;user-meetings&quot;>   <domain-name>http://example.com</domain-name>   </sco>   ...   </shortcuts>  </results>
 <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?>  
 <results> 
     <status code=&quot;ok&quot; />  
     <shortcuts> 
         <sco tree-id=&quot;624530&quot; sco-id=&quot;2006258751&quot; type=&quot;my-meeting-templates&quot;> 
             <domain-name>http://example.com</domain-name>  
         </sco> 
         <sco tree-id=&quot;624530&quot; sco-id=&quot;2006258750&quot; type=&quot;my-meetings&quot;> 
             <domain-name>http://example.com</domain-name>  
         </sco> 
         <sco tree-id=&quot;624529&quot; sco-id=&quot;624529&quot; type=&quot;meetings&quot;> 
             <domain-name>http://example.com</domain-name>  
         </sco> 
         <sco tree-id=&quot;624530&quot; sco-id=&quot;624530&quot; type=&quot;user-meetings&quot;> 
             <domain-name>http://example.com</domain-name>  
         </sco> 
         ... 
     </shortcuts> 
 </results>

本例中显示的文件夹恰好适用于会议, 但其他类型 SCO 的文件夹遵循类似的模式。 每个 文件夹类型存储特定类型的对象,具有 特定的访问权限,如下所示:

content、courses、meetings、events、seminars

以上是共享文件夹,例如 Shared Meetings、Shared Training 等。 Adobe Connect 管理员 有权访问此类文件夹。 管理员可以向任何用户分配管理权限, 但只有与文件夹关联的内置用户组的成员 才能在其中创建新内容或会议。

user-content、user-meetings、user-courses、user-events

凡可在此类文件夹中创建内容的用户, 都有专属于自己的文件夹(例如,每位会议主持人或培训开发人员 都有一个文件夹)。

my-courses、my-events、my-meetings、my-meeting-templates、my-content

用户 可在此类文件夹中创建自己的内容,对 内容具有管理权限。 例如,会议主持人可以在 my-meetings 文件夹中创建会议, 并具有管理这些会议权限。

shared-meeting-templates

此 文件夹位于共享会议文件夹中,包含会议模板, 并从共享会议继承权限。

您可以列出 任意文件夹的内容,以获取有关特定 SCO 的信息。 需要搜索 SCO 但却没有 sco-id 时,请使用 sco-shortcutssco-expanded-contents 遍历文件夹。 sco-search 仅返回特定 类型的 SCO,因此请勿使用。

在没有 sco-id 的情况下查找 SCO

  1. 调用 sco-shortcuts,以获取 Adob​​e Connect 上的根文件夹列表:

     https://example.com/api/xml?action=sco-shortcuts
     https://example.com/api/xml?action=sco-shortcuts
     https://example.com/api/xml?action=sco-shortcuts
  2. 解析响应,以获取逻辑上包含 SCO 的根 文件夹的 type,例如,解析 my-courses 以获取 用户创建的课程。

  3. 解析生成的 sco 元素,以获取 sco-id

    <sco tree-id=&quot;4930295&quot; sco-id=&quot;2006258748&quot; type=&quot;my-courses&quot;>
    <domain-name>http://example.com</domain-name>
    </sco>
     <sco tree-id=&quot;4930295&quot; sco-id=&quot;2006258748&quot; type=&quot;my-courses&quot;>   <domain-name>http://example.com</domain-name>  </sco>
     <sco tree-id=&quot;4930295&quot; sco-id=&quot;2006258748&quot; type=&quot;my-courses&quot;> 
         <domain-name>http://example.com</domain-name>  
     </sco>
  4. 调用 sco-expanded-contents,以列出文件夹的内容,并添加精确匹配过滤器(如有可能):

     https://example.com/api/xml?action=sco-expanded-contents
      &sco-id=2006258748&filter-name=All About Web Communities
     https://example.com/api/xml?action=sco-expanded-contents   &sco-id=2006258748&filter-name=All About Web Communities
     https://example.com/api/xml?action=sco-expanded-contents 
         &sco-id=2006258748&filter-name=All About Web Communities

    以下过滤器可供选择:

    • 如果知道 SCO 的名称或 URL ,请选择 nameurl-path 上 能够实现精确匹配的过滤器(如 filter-namefilter-url-path)。

    • 选择 date-begindate-createddate-modified (如果知道其中任意一个日期)的 greater-than 或 less-than 日期过滤器 (filter-gt-datefilter-lt-date)。

    • 如果不知道确切的 SCO 名称 ,则选择部分名称过滤器(如 filter-like-name)。 但是,使用此过滤器 可能会影响系统性能。

  5. 解析响应,以获取 sco-id

    <sco depth=&quot;1&quot; sco-id=&quot;2006745671&quot; folder-id=&quot;2006258748&quot; type=&quot;folder&quot;
      icon=&quot;folder&quot; lang=&quot;en&quot; source-sco-id=&quot;2006745669&quot; display-seq=&quot;0&quot;
      source-sco-type=&quot;14&quot;>
    <name>A Day in the Life Resources</name>
    <url-path>/f28435879/</url-path>
    <date-created>2006-06-12T14:47:59.903-07:00</date-created>
    <date-modified>2006-06-12T14:47:59.903-07:00</date-modified>
    </sco>
     <sco depth=&quot;1&quot; sco-id=&quot;2006745671&quot; folder-id=&quot;2006258748&quot; type=&quot;folder&quot;   icon=&quot;folder&quot; lang=&quot;en&quot; source-sco-id=&quot;2006745669&quot; display-seq=&quot;0&quot;   source-sco-type=&quot;14&quot;>   <name>A Day in the Life Resources</name>   <url-path>/f28435879/</url-path>   <date-created>2006-06-12T14:47:59.903-07:00</date-created>   <date-modified>2006-06-12T14:47:59.903-07:00</date-modified>  </sco>
     <sco depth=&quot;1&quot; sco-id=&quot;2006745671&quot; folder-id=&quot;2006258748&quot; type=&quot;folder&quot; 
             icon=&quot;folder&quot; lang=&quot;en&quot; source-sco-id=&quot;2006745669&quot; display-seq=&quot;0&quot; 
             source-sco-type=&quot;14&quot;> 
         <name>A Day in the Life Resources</name>  
         <url-path>/f28435879/</url-path>  
         <date-created>2006-06-12T14:47:59.903-07:00</date-created>  
         <date-modified>2006-06-12T14:47:59.903-07:00</date-modified>  
     </sco>

获取 有关 SCO 的信息

  1. 使用 sco-id 调用 sco-info

     https://example.com/api/xml?action=sco-info&sco-id=2006745669
     https://example.com/api/xml?action=sco-info&sco-id=2006745669
     https://example.com/api/xml?action=sco-info&sco-id=2006745669
  2. 解析响应,以获取 nameurl-path 或任意其他值:

    <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot;
      folder-id=&quot;2006258748&quot; icon=&quot;curriculum&quot; lang=&quot;en&quot; max-retries=&quot;&quot;
      sco-id=&quot;2006745669&quot; source-sco-id=&quot;&quot; type=&quot;curriculum&quot; version=&quot;0&quot;>
    <date-begin>2006-06-12T14:45:00.000-07:00</date-begin>
    <date-created>2006-06-12T14:47:59.903-07:00</date-created>
    <date-modified>2006-06-12T14:47:59.903-07:00</date-modified>
    <name>A Day in the Life</name>
    <url-path>/day/</url-path>
    </sco>
     <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot;   folder-id=&quot;2006258748&quot; icon=&quot;curriculum&quot; lang=&quot;en&quot; max-retries=&quot;&quot;   sco-id=&quot;2006745669&quot; source-sco-id=&quot;&quot; type=&quot;curriculum&quot; version=&quot;0&quot;>   <date-begin>2006-06-12T14:45:00.000-07:00</date-begin>   <date-created>2006-06-12T14:47:59.903-07:00</date-created>   <date-modified>2006-06-12T14:47:59.903-07:00</date-modified>   <name>A Day in the Life</name>   <url-path>/day/</url-path>  </sco>
     <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot;  
             folder-id=&quot;2006258748&quot; icon=&quot;curriculum&quot; lang=&quot;en&quot; max-retries=&quot;&quot; 
             sco-id=&quot;2006745669&quot; source-sco-id=&quot;&quot; type=&quot;curriculum&quot; version=&quot;0&quot;> 
         <date-begin>2006-06-12T14:45:00.000-07:00</date-begin>  
         <date-created>2006-06-12T14:47:59.903-07:00</date-created>  
         <date-modified>2006-06-12T14:47:59.903-07:00</date-modified>  
         <name>A Day in the Life</name>  
         <url-path>/day/</url-path>  
     </sco>

构建 SCO 的 URL

  1. 调用 sco-shortcuts

     https://example.com/api/xml?action=sco-shortcuts
     https://example.com/api/xml?action=sco-shortcuts
     https://example.com/api/xml?action=sco-shortcuts
  2. 解析响应,以获取 任意 sco 元素中的 domain-name 值:

    <sco tree-id=&quot;624530&quot; sco-id=&quot;2006258750&quot; type=&quot;my-meetings&quot;>
    <domain-name>http://example.com</domain-name>
    </sco>
     <sco tree-id=&quot;624530&quot; sco-id=&quot;2006258750&quot; type=&quot;my-meetings&quot;>   <domain-name>http://example.com</domain-name>  </sco>
     <sco tree-id=&quot;624530&quot; sco-id=&quot;2006258750&quot; type=&quot;my-meetings&quot;> 
         <domain-name>http://example.com</domain-name>  
     </sco>
  3. 使用 sco-id 调用 sco-info

     https://example.com/api/xml?action=sco-info&sco-id=2006334909
     https://example.com/api/xml?action=sco-info&sco-id=2006334909
     https://example.com/api/xml?action=sco-info&sco-id=2006334909
  4. 解析响应,以获取 url-path

    <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot;
      folder-id=&quot;2006258747&quot; icon=&quot;producer&quot; lang=&quot;en&quot;
      max-retries=&quot;&quot; sco-id=&quot;2006334909&quot; source-sco-id=&quot;&quot;
      type=&quot;content&quot; version=&quot;1&quot;>
    <date-created>2006-05-11T12:00:02.000-07:00</date-created>
    <date-modified>2006-05-16T15:22:25.703-07:00</date-modified>
    <name>Test Quiz</name>
    <url-path>/quiz/</url-path>
    <passing-score>10</passing-score>
    <duration>15100.0</duration>
    <section-count>6</section-count>
    </sco>
     <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot;   folder-id=&quot;2006258747&quot; icon=&quot;producer&quot; lang=&quot;en&quot;   max-retries=&quot;&quot; sco-id=&quot;2006334909&quot; source-sco-id=&quot;&quot;   type=&quot;content&quot; version=&quot;1&quot;>   <date-created>2006-05-11T12:00:02.000-07:00</date-created>   <date-modified>2006-05-16T15:22:25.703-07:00</date-modified>   <name>Test Quiz</name>   <url-path>/quiz/</url-path>   <passing-score>10</passing-score>   <duration>15100.0</duration>   <section-count>6</section-count>  </sco>
     <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot;  
             folder-id=&quot;2006258747&quot; icon=&quot;producer&quot; lang=&quot;en&quot;  
             max-retries=&quot;&quot; sco-id=&quot;2006334909&quot; source-sco-id=&quot;&quot;  
             type=&quot;content&quot; version=&quot;1&quot;> 
         <date-created>2006-05-11T12:00:02.000-07:00</date-created>  
         <date-modified>2006-05-16T15:22:25.703-07:00</date-modified>  
         <name>Test Quiz</name>  
         <url-path>/quiz/</url-path>  
         <passing-score>10</passing-score>  
         <duration>15100.0</duration>  
         <section-count>6</section-count>  
     </sco>

    url-path 前后均有斜杠。 您可以从 report-my-meetingsreport-my-training 或任何返回的调用中获取 url-path

  5. url-pathdomain-name 连接起来:

     http://example.com/f2006258748/
     http://example.com/f2006258748/
     http://example.com/f2006258748/

下载文件

您 可以将 zip 文件从 Adob​​e Connect 下载到用户的本地计算机。 一个 zip 文件即为一个 SCO。 要下载 zip 文件,需要为文件构建下载 URL,如下所示:

 http://server-domain/url-path/output/url-path.zip?download=zip
 http://server-domain/url-path/output/url-path.zip?download=zip
 http://server-domain/url-path/output/url-path.zip?download=zip

您可能已经知道服务器的域名(例如 example.com)。 如果不知道域名,请调用 sco-shortcuts 以获取该域名。

从服务器下载 zip 文件

  1. 调用 sco-shortcuts

     https://example.com/api/xml?action=sco-shortcuts
     https://example.com/api/xml?action=sco-shortcuts
     https://example.com/api/xml?action=sco-shortcuts
  2. 从响应中提取任意 domain-name 值:

     http://example.com
     http://example.com
     http://example.com
  3. 使用 zip 文件的 sco-id 调用 sco-info

     https://example.com/api/xml?action=sco-info&sco-id=2006258747
     https://example.com/api/xml?action=sco-info&sco-id=2006258747
     https://example.com/api/xml?action=sco-info&sco-id=2006258747

    整个 zip 文件都是 SCO。

  4. 解析响应,以获取 url-path 元素:

    <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot; folder-id=&quot;624522&quot;
      icon=&quot;folder&quot; lang=&quot;en&quot; max-retries=&quot;&quot; sco-id=&quot;2006258747&quot;
      source-sco-id=&quot;&quot; type=&quot;folder&quot; version=&quot;1&quot;>
    <date-created>2006-04-18T10:21:47.020-07:00</date-created>
    <date-modified>2006-04-18T10:21:47.020-07:00</date-modified>
    <name>joy@acme.com</name>
    <url-path>/f124567890/</url-path>
    </sco>
     <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot; folder-id=&quot;624522&quot;   icon=&quot;folder&quot; lang=&quot;en&quot; max-retries=&quot;&quot; sco-id=&quot;2006258747&quot;   source-sco-id=&quot;&quot; type=&quot;folder&quot; version=&quot;1&quot;>   <date-created>2006-04-18T10:21:47.020-07:00</date-created>   <date-modified>2006-04-18T10:21:47.020-07:00</date-modified>   <name>joy@acme.com</name>   <url-path>/f124567890/</url-path>  </sco>
     <sco account-id=&quot;624520&quot; disabled=&quot;&quot; display-seq=&quot;0&quot; folder-id=&quot;624522&quot; 
             icon=&quot;folder&quot; lang=&quot;en&quot; max-retries=&quot;&quot; sco-id=&quot;2006258747&quot;  
             source-sco-id=&quot;&quot; type=&quot;folder&quot; version=&quot;1&quot;> 
         <date-created>2006-04-18T10:21:47.020-07:00</date-created>  
         <date-modified>2006-04-18T10:21:47.020-07:00</date-modified>  
         <name>joy@acme.com</name>  
         <url-path>/f124567890/</url-path>  
     </sco>
  5. 构建下载 URL,例如:

     https://example.com/quiz/output/quiz.zip?download=zip
     https://example.com/quiz/output/quiz.zip?download=zip
     https://example.com/quiz/output/quiz.zip?download=zip

    请务必先删除 url-path 值的尾部斜杠, 再向其中添加 .zip 文件(最终您得到的值类似于 /quiz.zip,而非 /quiz/.zip)。

检查权限

权限 可定义主体与 SCO 交互的方式。

权限映射表示主体 对特定 SCO 所具有的权限,亦称为“访问控制列表”(ACL) 。 ACL 由三部分信息组成:

  • 主体的 ID (principal-id)。

  • 被执行操作的 SCO、帐户或主体的 ID。 在权限调用中,此 ID 称为 acl-id。 在其他 调用中,此 ID 可能称为 sco-idaccount-idprincipal-id

  • 表示主体所拥有权限级别的关键字, 这是 permission-id 中的有效值之一。

检查 主体对 SCO 的权限

  1. 使用 acl-idprincipal-id 调用 permissions-info

     https://example.com/api/xml?action=permissions-info&acl-id=2006334909
      &principal-id=2006258745
     https://example.com/api/xml?action=permissions-info&acl-id=2006334909   &principal-id=2006258745
     https://example.com/api/xml?action=permissions-info&acl-id=2006334909 
         &principal-id=2006258745

    要检查 对 SCO 的权限,可以利用 acl-id 作为 sco-idacl-id 也可以作为 principal-idaccount-id

  2. 解析响应,以获取 permission-id

    <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?>
    <results>
    <status code=&quot;ok&quot; />
    <permission acl-id=&quot;2007035246&quot; permission-id=&quot;view&quot;
      principal-id=&quot;2006258745&quot; />
    </results>
     <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?>  <results>   <status code=&quot;ok&quot; />   <permission acl-id=&quot;2007035246&quot; permission-id=&quot;view&quot;   principal-id=&quot;2006258745&quot; />  </results>
     <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?>  
     <results> 
         <status code=&quot;ok&quot; />  
         <permission acl-id=&quot;2007035246&quot; permission-id=&quot;view&quot;  
                 principal-id=&quot;2006258745&quot; />  
     </results>

    如果主体 对 SCO 没有显式权限(换言之,如果 permission-id=""), 则主体拥有对 SCO 父对象的权限。

检查 所有主体对 SCO 的权限

  1. 使用 acl-id(而非 principal-id) 调用 permissions-info

     https://example.com/api/xml?action=permissions-info&acl-id=2006293572
     https://example.com/api/xml?action=permissions-info&acl-id=2006293572
     https://example.com/api/xml?action=permissions-info&acl-id=2006293572
  2. 遍历 principal 元素 ,并对其进行解析,以获取 permission-id 值:

    <principal principal-id=&quot;2596608&quot; is-primary=&quot;false&quot; type=&quot;user&quot;
      has-children=&quot;false&quot; permission-id=&quot;view&quot;>
    <name>Jay Arnold</name>
    <login>jay@example.com</login>
    </principal>
     <principal principal-id=&quot;2596608&quot; is-primary=&quot;false&quot; type=&quot;user&quot;   has-children=&quot;false&quot; permission-id=&quot;view&quot;>   <name>Jay Arnold</name>   <login>jay@example.com</login>  </principal>
     <principal principal-id=&quot;2596608&quot; is-primary=&quot;false&quot; type=&quot;user&quot;  
                     has-children=&quot;false&quot; permission-id=&quot;view&quot;> 
             <name>Jay Arnold</name>  
             <login>jay@example.com</login>  
     </principal>

    permission-id 中会列出 有效的权限值。

更快、更轻松地获得帮助

新用户?