0

我正在从 SOAP 迁移到 valence API。我在获取用户(所有用户,基于角色,按用户 ID 等)和成绩(所有变体)等几个调用时遇到了一些问题。

我看到一个没有项目的空列表返回。没有任何错误。当我尝试使用 SOAP 获取数据时,我得到了所需的数据。

我已经检查了“搜索学生”的权限,所以从技术上讲,当我尝试获取所有用户或通过学生的角色 ID 时,我应该得到一些东西。我在这里还缺少什么...

4

1 回答 1

1

D2LWS 服务的身份验证机制将 API 调用者置于特权调用者的位置。Valence 学习框架 API 使用不同的身份验证模型:标识用户的用户 ID/密钥令牌被后端使用以限制调用的功能。也就是说:经过身份验证的用户应该可以访问与用户通过 Web UI 获得的相同功能和数据,仅此而已。

在这种特殊情况下,调用成功:它们发回结果集中您的调用用户有权查看的所有元素——没有一个。

这几乎可以肯定是授予调用用户的角色权限的问题,并且围绕调用调试权限可能具有挑战性。Valence 项目的文档提供了一个关于调查角色权限的演练主题,该主题可能会在此处提供一种可能的方法,尤其是关于获取对用户记录(或出现在用户记录中的属性)的访问权限的调用。

/d2l/api/lp/{version}/users/正如演练所讨论的,进行一般性调用以使权限发挥作用有多个方面:

  • 如果您尝试使用查询参数进行过滤,调用用户上下文是否有权使用您要过滤的数据

  • 调用用户上下文是否有权查看受用户信息隐私设置影响的属性

  • 调用用户是否有权搜索他们需要的所有用户角色,以便在结果集中找到用户

用户调用操作在根组织单位,所以调用用户需要的权限必须在组织单位类型上设置。

相比之下,与成绩相关的 API 调用不是在根组织单元上运行,而是通常在课程产品、部分或组上运行。围绕调用的权限将在关联的组织单位类型中进行检查,因此调用用户将需要针对这些类型的正确权限。此外,与课程提供(也包括部分和组)相关的许多呼叫要求呼叫用户在相关组织单位中注册(在某些情况下,明确注册,而不仅仅是通过级联注册进行注册)。

如果您确定您的调用用户上下文确实允许您访问这些内容(并允许您通过 Web UI 访问这些数据),并且当您通过 API 调用时仍然看到这样的不匹配,那么您可能已经发现了某种缺陷,您应该请贵组织的支持联系人或您的客户经理打开支持票证,以便通过 Desire2Learn 的支持台报告该问题。

于 2013-08-08T12:27:35.800 回答