使用过滤器调用 principal-list:
了解一些关键概念以及基础知识,以开始使用 Adobe Connect Web Service API。
要开始使用 Adobe Connect Web Services,需要 了解三个关键概念:
主体, 即用户和用户组
SCO, 即可共享内容对象,包含会议、课程以及 几乎所有可以在 Adobe Connect 上创建的内容。 SCO(发音为 sko, 与 snow 押韵)符合行业标准 可共享内容对象参考模型 (SCORM) 规范, 可以在学习管理系统 (LMS) 中使用。
权限,定义主体可以对对象执行的操作
本章介绍了可以使用 Web Services 执行的基本任务, 与授予许可的 Adobe Connect 应用程序无关。 根据任务描述,许多任务应在浏览器中执行。 如果希望从应用程序进行调用,请将 XML 请求转换为使用的语言(有关 如何在 Java™ 中执行此操作的示例,请参阅发送 XML 请求)。
查找 principal-id
主体是 拥有明确权限可与服务器上的 SCO 交互的用户或用户组。 您 可以为所在组织创建用户和用户组,并修改其 权限。
Adobe Connect 还拥有以下内置用户组: 管理员、受限管理员、作者、培训管理者、 活动管理者、学员、会议主持人和研讨会主持人。 您 可以向内置用户组添加用户和用户组,但无法修改 组内权限。
内置用户组的可用性 因帐户而异。
所有 Adobe Connect 用户和用户组都有 principal-id。 在一些 API 调用中,principal-id 也称为 group-id 或 user-id,以与其他值区别开来。 标识用户或用户组的 ID 值始终相同,与其名称无关。
获取 用户或用户组的 principal-id
-
https://example.com/api/xml?action=principal-list&filter-name=jazz doehttps://example.com/api/xml?action=principal-list&filter-name=jazz doe
https://example.com/api/xml?action=principal-list&filter-name=jazz doe
最好使用 filter-name、filter-login 或 filter-email,以实现精确匹配。 filter-like-name 很可能会影响服务器性能,因此请谨慎使用。
-
解析响应中的 principal 元素, 以获取 principal-id:
<principal principal-id="2006282569" account-id="624520" type="user"has-children="false" is-primary="false" is-hidden="false"><name>jazz doe</name><login>jazzdoe@example.com</login><email>jazzdoe@newcompany.com</email></principal><principal principal-id="2006282569" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>jazz doe</name> <login>jazzdoe@example.com</login> <email>jazzdoe@newcompany.com</email> </principal><principal principal-id="2006282569" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>jazz doe</name> <login>jazzdoe@example.com</login> <email>jazzdoe@newcompany.com</email> </principal>
获取 当前用户的 principal-id
-
用户登录后, 调用 common-info:
https://example.com/api/xml?action=common-infohttps://example.com/api/xml?action=common-infohttps://example.com/api/xml?action=common-info
-
解析响应中的 user 元素,以获取 user-id:
<user user-id="2007124930" type="user"><name>jazz doe</name><login>jazz@doe.com</login></user><user user-id="2007124930" type="user"> <name>jazz doe</name> <login>jazz@doe.com</login> </user><user user-id="2007124930" type="user"> <name>jazz doe</name> <login>jazz@doe.com</login> </user>
本例中,principal-id 也称为 user-id,始终表示 已通过 Adobe Connect 身份验证的用户。 用户组无法登录到 服务器。 您可以在其他操作中将 user-id 值作为 principal-id 传递 。
列出主体或客人
type 为“主体”的用户是 Adobe Connect 注册用户,而 type 为“客人”的用户 则是以客人身份进入会议室的用户。 服务器可捕获 客人信息,并为其提供 principal-id。
列出 服务器上的所有主体
-
在不使用参数的情况下调用 principal-list:
https://example.com/api/xml?action=principal-listhttps://example.com/api/xml?action=principal-listhttps://example.com/api/xml?action=principal-list
此 调用会返回所有 Adobe Connect 用户,因此请做好应对大量 响应的准备。
-
解析响应中的 principal 元素, 以获取所需值:
<principal principal-id="2006282569" account-id="624520" type="user"has-children="false" is-primary="false" is-hidden="false"><name>jazz doe</name><login>jazzdoe@example.com</login><email>jazzdoe@newcompany.com</email></principal><principal principal-id="2006282569" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>jazz doe</name> <login>jazzdoe@example.com</login> <email>jazzdoe@newcompany.com</email> </principal><principal principal-id="2006282569" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>jazz doe</name> <login>jazzdoe@example.com</login> <email>jazzdoe@newcompany.com</email> </principal>
列出 服务器上的所有客人
-
调用 report-bulk-users,过滤某种类型的客人:
https://example.com/api/xml?action=report-bulk-users&filter-type=guesthttps://example.com/api/xml?action=report-bulk-users&filter-type=guesthttps://example.com/api/xml?action=report-bulk-users&filter-type=guest
-
解析响应中的 row 元素:
<row principal-id="51157227"><login>joy@acme.com</login><name>joy@acme.com</name><email>joy@acme.com</email><type>guest</type></row><row principal-id="51157227"> <login>joy@acme.com</login> <name>joy@acme.com</name> <email>joy@acme.com</email> <type>guest</type> </row><row principal-id="51157227"> <login>joy@acme.com</login> <name>joy@acme.com</name> <email>joy@acme.com</email> <type>guest</type> </row>
列出 向特定管理者报告的所有用户
使用 principal-id 调用 principal-info 时 ,响应会显示该主体。 如果在 Adobe Connect 中已为该主体分配管理者, 则响应还会在 manager 元素中显示该主体管理者的数据:
<manager account-id="624520" disabled="" has-children="false" is-hidden="false" is-primary="false" principal-id="2006282569" type="user"> <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-id 与 principal-list, 列出分配给该管理者的所有用户。
-
调用 principal-list,根据 manager-id 进行过滤:
https://example.com/api/xml?action=principal-list &filter-manager-id=2006282569https://example.com/api/xml?action=principal-list &filter-manager-id=2006282569https://example.com/api/xml?action=principal-list &filter-manager-id=2006282569
-
解析响应,以获取 principal 元素:
<principal principal-id="2006258745" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false" manager-id="2006282569"><name>Pat Lee</name><login>plee@mycompany.com</login><email>plee@mycompany.com</email></principal><principal principal-id="2006258745" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false" manager-id="2006282569"> <name>Pat Lee</name> <login>plee@mycompany.com</login> <email>plee@mycompany.com</email> </principal><principal principal-id="2006258745" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false" manager-id="2006282569"> <name>Pat Lee</name> <login>plee@mycompany.com</login> <email>plee@mycompany.com</email> </principal>
创建用户
要 创建新用户,需要具备管理员权限。 Adobe 建议 创建属于“管理员”用户组 的用户,便于应用程序进行需要管理员 权限的 API 调用。
创建 新用户并发送欢迎电子邮件
-
在应用程序中,以管理员用户 身份登录。
有关各种 登录方式,请参阅使用应用程序登录。
-
至少使用以下参数调用 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.comhttps://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.comhttps://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 必须 为 user,has-children 必须为 0 或 false,send-email 必须 为 true,email 必须为 有效的电子邮件地址。
服务器会向用户的电子邮件地址发送带有 登录信息的欢迎电子邮件。
-
解析响应中的 principal 元素,以获取用户的 principal-id:
<principal type="user" principal-id="2007184341" has-children="0"account-id="624520"><login>jammdoe@example.com</login><ext-login>jammdoe@example.com</ext-login><name>jamm doe</name></principal><principal type="user" principal-id="2007184341" has-children="0" account-id="624520"> <login>jammdoe@example.com</login> <ext-login>jammdoe@example.com</ext-login> <name>jamm doe</name> </principal><principal type="user" principal-id="2007184341" has-children="0" account-id="624520"> <login>jammdoe@example.com</login> <ext-login>jammdoe@example.com</ext-login> <name>jamm doe</name> </principal>
在不使用电子邮件地址作为登录 ID 的情况下 创建新用户
-
在 Adobe Connect Central 中, 导航至“管理”>“用户和用户组”>“编辑登录名 和口令策略”。 确保将“使用电子邮件地址作为登录名” 设置为“否”。
-
在应用程序中,以管理员用户身份登录。
-
调用 principal-update 以创建新用户,同时传递 login 和 email 参数:
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=0https://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=0https://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
-
解析响应,以获取 新用户的 principal-id:
<principal type="user" principal-id="2007184341" has-children="0"account-id="624520"><login>jazzdoe@example.com</login><ext-login>jazzdoe@example.com</ext-login><name>jazz doe</name></principal><principal type="user" principal-id="2007184341" has-children="0" account-id="624520"> <login>jazzdoe@example.com</login> <ext-login>jazzdoe@example.com</ext-login> <name>jazz doe</name> </principal><principal type="user" principal-id="2007184341" has-children="0" account-id="624520"> <login>jazzdoe@example.com</login> <ext-login>jazzdoe@example.com</ext-login> <name>jazz doe</name> </principal>
在响应中,默认情况下,在用户 使用外部身份验证成功登录(请参阅使用 HTTP 头身份验证登录)之前,ext-login 与 login 具有相同的值。
更新用户
创建用户后,需要经常更新其信息。 您可以使用用户的 principal-id 调用 principal-update, 以此更新 Adobe Connect 为用户定义的标准字段 。 标准字段包括 email、login、first-name 以及 last-name。
如果已为主体定义自定义字段,请使用 acl-field-update 对其进行更新 。
您需要具备管理员权限才能更新用户,因此在应用程序中, 必须首先以“管理员”用户组中的用户身份登录。 您不能以用户身份登录,然后让用户更新 自己的配置文件。
更新 标准用户信息
-
以管理员用户身份 登录。
-
使用过滤器调用 principal-list, 以获取用户的 principal-id(请参阅查找 principal-id)。
-
调用 principal-update 以更新用户:
https://example.com/api/xml?action=principal-update&principal-id=2006282569&email=jazzdoe@newcompany.comhttps://example.com/api/xml?action=principal-update &principal-id=2006282569&email=jazzdoe@newcompany.comhttps://example.com/api/xml?action=principal-update &principal-id=2006282569&email=jazzdoe@newcompany.com
-
解析响应,以获取 ok 的状态码。
更新 用户的自定义字段值
-
以管理员用户身份登录 。
-
调用 custom-fields,以获取自定义字段的 field-id :
https://example.com/api/xml?action=custom-fieldshttps://example.com/api/xml?action=custom-fieldshttps://example.com/api/xml?action=custom-fields
-
获取希望更新的 principal-id、sco-id 或 account-id。
该值 是传递给 acl-field-update 的 acl-id。
-
调用 acl-field-update,以更新自定义字段的值 :
https://example.com/api/xml?action=acl-field-update&field-id=x-2007396975&acl-id=2006258745&value=44444https://example.com/api/xml?action=acl-field-update&field-id=x-2007396975&acl-id=2006258745&value=44444https://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。
定义 自定义字段,并根据用户进行设置
-
首先,使用 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=9https://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=9https://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 字段 可定义应用程序显示的字段名称,因此请 正确拼写,区分大小写。 本例中的自定义字段适用于 所有 Adobe Connect 主体。
-
解析响应中的 field 元素, 以获取 field-id:
<field field-id="2007184366" object-type="object-type-principal"display-seq="9" account-id="624520" is-primary="false"permission-id="manage" is-required="true" field-type="text"><comments>test</comments><name>Country</name></field><field field-id="2007184366" object-type="object-type-principal" display-seq="9" account-id="624520" is-primary="false" permission-id="manage" is-required="true" field-type="text"> <comments>test</comments> <name>Country</name> </field><field field-id="2007184366" object-type="object-type-principal" display-seq="9" account-id="624520" is-primary="false" permission-id="manage" is-required="true" field-type="text"> <comments>test</comments> <name>Country</name> </field>
-
获取用户的 principal-id(请参阅查找 principal-id)。
-
调用 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%20Franciscohttps://example.com/api/xml?action=acl-field-update &acl-id=2006258745&field-id=2007017474&value=San%20Franciscohttps://example.com/api/xml?action=acl-field-update &acl-id=2006258745&field-id=2007017474&value=San%20Francisco
-
解析响应,以获取 ok 的状态码。
创建用户组
要 将用户添加到用户组,需要以 应用程序管理员用户的身份调用 principal-update。
将用户添加到用户组
-
以应用程序管理员用户的身份登录。
-
(可选)如果用户尚不存在,请使用 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=0https://example.com/api/xml?action=principal-update &first-name=jazzwayjazz&last-name=doe&login=jazz@doe.com &password=nothing&type=user&has-children=0https://example.com/api/xml?action=principal-update &first-name=jazzwayjazz&last-name=doe&login=jazz@doe.com &password=nothing&type=user&has-children=0
-
(可选)解析响应,以获取新用户的 principal-id。
-
如果用户已经存在,请调用 principal-list,以获取 用户的 principal-id:
https://example.com/api/xml?action=principal-list&filter-type=userhttps://example.com/api/xml?action=principal-list&filter-type=userhttps://example.com/api/xml?action=principal-list&filter-type=user
-
解析响应,以获取 principal-id:
<principal principal-id="5611980" account-id="624520" type="user"has-children="false" is-primary="false" is-hidden="false"><name>Joy Black</name><login>joy@acme.com</login><email>joy@acme.com</email></principal><principal principal-id="5611980" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>Joy Black</name> <login>joy@acme.com</login> <email>joy@acme.com</email> </principal><principal principal-id="5611980" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>Joy Black</name> <login>joy@acme.com</login> <email>joy@acme.com</email> </principal>
-
再次调用 principal-list,以获取用户组的 principal-id:
https://example.com/api/xml?action=principal-list&filter-type=grouphttps://example.com/api/xml?action=principal-list&filter-type=grouphttps://example.com/api/xml?action=principal-list&filter-type=group
-
使用 is-member=true 调用 group-membership-update, 以将用户添加到用户组:
https://example.com/api/xml?action=group-membership-update&group-id=4930296&principal-id=2006258745&is-member=truehttps://example.com/api/xml?action=group-membership-update &group-id=4930296&principal-id=2006258745&is-member=truehttps://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。
检查 用户组中是否存在特定用户
-
使用 group-id、filter-is-member 以及可标识主体的过滤器调用 principal-list:
https://example.com/api/xml?action=principal-list&group-id=624523&filter-is-member=true&filter-like-name=bobhttps://example.com/api/xml?action=principal-list&group-id=624523 &filter-is-member=true&filter-like-name=bobhttps://example.com/api/xml?action=principal-list&group-id=624523 &filter-is-member=true&filter-like-name=bob
-
解析响应中的 principal 元素。 成功的响应如下所示:
<principal-list><principal principal-id="624660" account-id="624520" type="user"has-children="false" is-primary="false" is-hidden="false"><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="624660" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <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="624660" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <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="1.0" encoding="utf-8" ?><results><status code="ok" /><principal-list /></results><?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <principal-list /> </results><?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <principal-list /> </results>
检查 用户组中有哪些用户
-
要获取用户组的 principal-id, 请使用过滤器调用 principal-list:
https://example.com/api/xml?action=principal-list&filter-type=group&filter-name=developershttps://example.com/api/xml?action=principal-list&filter-type=group &filter-name=developershttps://example.com/api/xml?action=principal-list&filter-type=group &filter-name=developers
使用 filter-type 和 filter-name 调用 principal-list,可 返回唯一匹配项。
-
解析响应,以获取 principal-id:
<principal principal-id="2007105030" account-id="624520"type="group" has-children="true" is-primary="false"is-hidden="false"><name>developers</name><login>developers</login><is-member>false</is-member></principal><principal principal-id="2007105030" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>developers</name> <login>developers</login> <is-member>false</is-member> </principal><principal principal-id="2007105030" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>developers</name> <login>developers</login> <is-member>false</is-member> </principal>
-
使用 principal-id 作为 group-id 以及 filter-is-member=true,再次调用 principal-list:
https://example.com/api/xml?action=principal-list&group-id=2007105030&filter-is-member=truehttps://example.com/api/xml?action=principal-list&group-id=2007105030 &filter-is-member=truehttps://example.com/api/xml?action=principal-list&group-id=2007105030 &filter-is-member=true
-
解析响应,以获取 principal 元素:
<principal principal-id="5698354" account-id="624520" type="group"has-children="true" is-primary="false" is-hidden="false"><name>Bob Jones</name><login>bobjones@acme.com</login><is-member>true</is-member></principal><principal principal-id="5698354" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>Bob Jones</name> <login>bobjones@acme.com</login> <is-member>true</is-member> </principal><principal principal-id="5698354" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>Bob Jones</name> <login>bobjones@acme.com</login> <is-member>true</is-member> </principal>
列出 用户所属的全部用户组
-
使用用户的 principal-id 和 filter-is-member=true 调用 principal-list:
https://example.com/api/xml?action=principal-list&principal-id=2006258745&filter-is-member=truehttps://example.com/api/xml?action=principal-list &principal-id=2006258745&filter-is-member=truehttps://example.com/api/xml?action=principal-list &principal-id=2006258745&filter-is-member=true
-
解析响应,以获取 principal 元素:
<principal principal-id="5698354" account-id="624520" type="group"has-children="true" is-primary="false" is-hidden="false"><name>Bob Jones</name><login>bobjones@acme.com</login><is-member>true</is-member></principal><principal principal-id="5698354" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>Bob Jones</name> <login>bobjones@acme.com</login> <is-member>true</is-member> </principal><principal principal-id="5698354" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>Bob Jones</name> <login>bobjones@acme.com</login> <is-member>true</is-member> </principal>
查找 SCO
Adobe Connect 上的所有对象均为可共享内容对象 (SCO)。 “可共享”一词源于学习管理系统 ,该系统将内容合并到课程或课程表中,并在 课程或课程表中共享。
在服务器上,SCO 可以是与其他内容对象组合成 课程或课程表的任何内容对象。 课程、 课程表、演示文稿和其他类型的内容都属于 SCO。 会议、活动、文件夹、树、链接、图形文件或任何 其他对象也属于 SCO。
每个 SCO 都有 唯一的整数标识符,称为 sco-id。 sco-id 在整个服务器中都具有唯一性。 sco-id 在所有 Adobe Connect 托管帐户中具有唯一性。
SCO 也可按类型划分,如内容、课程、会议 等。 您可以在 sco-info 或其他操作的响应中 看到 sco-id 和 type 值:
<sco account-id="624520" disabled="" display-seq="0" folder-id="2006258747" icon="producer" lang="en" max-retries="" sco-id="2006334909" source-sco-id="" type="content" version="1">
SCO 的特征
研究各种调用的 XML 响应时,您会注意到 更多 SCO 的特征:
SCO 的标识符在 某些操作中称为 sco-id,但在其他操作中也可以称为 folder-id、acl-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="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <shortcuts> <sco tree-id="624530" sco-id="2006258751" type="my-meeting-templates"> <domain-name>http://example.com</domain-name> </sco> <sco tree-id="624530" sco-id="2006258750" type="my-meetings"> <domain-name>http://example.com</domain-name> </sco> <sco tree-id="624529" sco-id="624529" type="meetings"> <domain-name>http://example.com</domain-name> </sco> <sco tree-id="624530" sco-id="624530" type="user-meetings"> <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-shortcuts 和 sco-expanded-contents 遍历文件夹。 sco-search 仅返回特定 类型的 SCO,因此请勿使用。
在没有 sco-id 的情况下查找 SCO
-
调用 sco-shortcuts,以获取 Adobe Connect 上的根文件夹列表:
https://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcuts
-
解析响应,以获取逻辑上包含 SCO 的根 文件夹的 type,例如,解析 my-courses 以获取 用户创建的课程。
-
解析生成的 sco 元素,以获取 sco-id:
<sco tree-id="4930295" sco-id="2006258748" type="my-courses"><domain-name>http://example.com</domain-name></sco><sco tree-id="4930295" sco-id="2006258748" type="my-courses"> <domain-name>http://example.com</domain-name> </sco><sco tree-id="4930295" sco-id="2006258748" type="my-courses"> <domain-name>http://example.com</domain-name> </sco>
-
调用 sco-expanded-contents,以列出文件夹的内容,并添加精确匹配过滤器(如有可能):
https://example.com/api/xml?action=sco-expanded-contents&sco-id=2006258748&filter-name=All About Web Communitieshttps://example.com/api/xml?action=sco-expanded-contents &sco-id=2006258748&filter-name=All About Web Communitieshttps://example.com/api/xml?action=sco-expanded-contents &sco-id=2006258748&filter-name=All About Web Communities
以下过滤器可供选择:
如果知道 SCO 的名称或 URL ,请选择 name 或 url-path 上 能够实现精确匹配的过滤器(如 filter-name 或 filter-url-path)。
选择 date-begin、date-created 或 date-modified (如果知道其中任意一个日期)的 greater-than 或 less-than 日期过滤器 (filter-gt-date 或 filter-lt-date)。
如果不知道确切的 SCO 名称 ,则选择部分名称过滤器(如 filter-like-name)。 但是,使用此过滤器 可能会影响系统性能。
-
解析响应,以获取 sco-id:
<sco depth="1" sco-id="2006745671" folder-id="2006258748" type="folder"icon="folder" lang="en" source-sco-id="2006745669" display-seq="0"source-sco-type="14"><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="1" sco-id="2006745671" folder-id="2006258748" type="folder" icon="folder" lang="en" source-sco-id="2006745669" display-seq="0" source-sco-type="14"> <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="1" sco-id="2006745671" folder-id="2006258748" type="folder" icon="folder" lang="en" source-sco-id="2006745669" display-seq="0" source-sco-type="14"> <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 的信息
-
使用 sco-id 调用 sco-info:
https://example.com/api/xml?action=sco-info&sco-id=2006745669https://example.com/api/xml?action=sco-info&sco-id=2006745669https://example.com/api/xml?action=sco-info&sco-id=2006745669
-
解析响应,以获取 name、url-path 或任意其他值:
<sco account-id="624520" disabled="" display-seq="0"folder-id="2006258748" icon="curriculum" lang="en" max-retries=""sco-id="2006745669" source-sco-id="" type="curriculum" version="0"><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="624520" disabled="" display-seq="0" folder-id="2006258748" icon="curriculum" lang="en" max-retries="" sco-id="2006745669" source-sco-id="" type="curriculum" version="0"> <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="624520" disabled="" display-seq="0" folder-id="2006258748" icon="curriculum" lang="en" max-retries="" sco-id="2006745669" source-sco-id="" type="curriculum" version="0"> <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
-
调用 sco-shortcuts:
https://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcuts
-
解析响应,以获取 任意 sco 元素中的 domain-name 值:
<sco tree-id="624530" sco-id="2006258750" type="my-meetings"><domain-name>http://example.com</domain-name></sco><sco tree-id="624530" sco-id="2006258750" type="my-meetings"> <domain-name>http://example.com</domain-name> </sco><sco tree-id="624530" sco-id="2006258750" type="my-meetings"> <domain-name>http://example.com</domain-name> </sco>
-
使用 sco-id 调用 sco-info:
https://example.com/api/xml?action=sco-info&sco-id=2006334909https://example.com/api/xml?action=sco-info&sco-id=2006334909https://example.com/api/xml?action=sco-info&sco-id=2006334909
-
解析响应,以获取 url-path:
<sco account-id="624520" disabled="" display-seq="0"folder-id="2006258747" icon="producer" lang="en"max-retries="" sco-id="2006334909" source-sco-id=""type="content" version="1"><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="624520" disabled="" display-seq="0" folder-id="2006258747" icon="producer" lang="en" max-retries="" sco-id="2006334909" source-sco-id="" type="content" version="1"> <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="624520" disabled="" display-seq="0" folder-id="2006258747" icon="producer" lang="en" max-retries="" sco-id="2006334909" source-sco-id="" type="content" version="1"> <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-meetings、report-my-training 或任何返回的调用中获取 url-path。
-
将 url-path 与 domain-name 连接起来:
http://example.com/f2006258748/http://example.com/f2006258748/http://example.com/f2006258748/
下载文件
您 可以将 zip 文件从 Adobe Connect 下载到用户的本地计算机。 一个 zip 文件即为一个 SCO。 要下载 zip 文件,需要为文件构建下载 URL,如下所示:
http://server-domain/url-path/output/url-path.zip?download=zip
您可能已经知道服务器的域名(例如 example.com)。 如果不知道域名,请调用 sco-shortcuts 以获取该域名。
从服务器下载 zip 文件
-
调用 sco-shortcuts:
https://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcuts
-
从响应中提取任意 domain-name 值:
http://example.comhttp://example.comhttp://example.com
-
使用 zip 文件的 sco-id 调用 sco-info:
https://example.com/api/xml?action=sco-info&sco-id=2006258747https://example.com/api/xml?action=sco-info&sco-id=2006258747https://example.com/api/xml?action=sco-info&sco-id=2006258747
整个 zip 文件都是 SCO。
-
解析响应,以获取 url-path 元素:
<sco account-id="624520" disabled="" display-seq="0" folder-id="624522"icon="folder" lang="en" max-retries="" sco-id="2006258747"source-sco-id="" type="folder" version="1"><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="624520" disabled="" display-seq="0" folder-id="624522" icon="folder" lang="en" max-retries="" sco-id="2006258747" source-sco-id="" type="folder" version="1"> <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="624520" disabled="" display-seq="0" folder-id="624522" icon="folder" lang="en" max-retries="" sco-id="2006258747" source-sco-id="" type="folder" version="1"> <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>
-
构建下载 URL,例如:
https://example.com/quiz/output/quiz.zip?download=ziphttps://example.com/quiz/output/quiz.zip?download=ziphttps://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-id、account-id 或 principal-id。
表示主体所拥有权限级别的关键字, 这是 permission-id 中的有效值之一。
检查 主体对 SCO 的权限
-
使用 acl-id 和 principal-id 调用 permissions-info:
https://example.com/api/xml?action=permissions-info&acl-id=2006334909&principal-id=2006258745https://example.com/api/xml?action=permissions-info&acl-id=2006334909 &principal-id=2006258745https://example.com/api/xml?action=permissions-info&acl-id=2006334909 &principal-id=2006258745
要检查 对 SCO 的权限,可以利用 acl-id 作为 sco-id。 acl-id 也可以作为 principal-id 或 account-id。
-
解析响应,以获取 permission-id:
<?xml version="1.0" encoding="utf-8" ?><results><status code="ok" /><permission acl-id="2007035246" permission-id="view"principal-id="2006258745" /></results><?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <permission acl-id="2007035246" permission-id="view" principal-id="2006258745" /> </results><?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <permission acl-id="2007035246" permission-id="view" principal-id="2006258745" /> </results>
如果主体 对 SCO 没有显式权限(换言之,如果 permission-id=""), 则主体拥有对 SCO 父对象的权限。
检查 所有主体对 SCO 的权限
-
使用 acl-id(而非 principal-id) 调用 permissions-info:
https://example.com/api/xml?action=permissions-info&acl-id=2006293572https://example.com/api/xml?action=permissions-info&acl-id=2006293572https://example.com/api/xml?action=permissions-info&acl-id=2006293572
-
遍历 principal 元素 ,并对其进行解析,以获取 permission-id 值:
<principal principal-id="2596608" is-primary="false" type="user"has-children="false" permission-id="view"><name>Jay Arnold</name><login>jay@example.com</login></principal><principal principal-id="2596608" is-primary="false" type="user" has-children="false" permission-id="view"> <name>Jay Arnold</name> <login>jay@example.com</login> </principal><principal principal-id="2596608" is-primary="false" type="user" has-children="false" permission-id="view"> <name>Jay Arnold</name> <login>jay@example.com</login> </principal>
permission-id 中会列出 有效的权限值。