使用Valence API desire2learn未返回结果

使用Valence API desire2learn未返回结果,desire2learn,valence,Desire2learn,Valence,我正在致力于从SOAP迁移到valence API。我在一些调用中遇到了一些问题,比如获取用户(所有用户,基于角色、用户ID等)和等级(所有变体) 我看到返回的列表为空,没有任何项目。没有任何错误。当我尝试使用SOAP获取数据时,我得到了所需的数据 我已经检查了“搜索学生”的权限,所以从技术上讲,当我尝试获取所有用户或学生的角色id时,我应该得到一些东西。我还缺少什么…D2LWS服务的身份验证机制将API调用方置于特权调用方的位置。Valence Learning Framework API使用

我正在致力于从SOAP迁移到valence API。我在一些调用中遇到了一些问题,比如获取用户(所有用户,基于角色、用户ID等)和等级(所有变体)

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


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

D2LWS服务的身份验证机制将API调用方置于特权调用方的位置。Valence Learning Framework API使用不同的身份验证模型:后端使用标识用户的用户ID/密钥令牌来限制调用的功能。也就是说:经过身份验证的用户应该能够访问与用户通过web UI访问相同的功能和数据,而不是更多

在这种情况下,调用会成功:它们会发回结果集中调用用户有权限查看的所有元素——它们都没有

这几乎可以肯定是一个与您的呼叫用户所拥有的角色权限有关的问题,并且调试有关呼叫的权限可能具有挑战性。Valence项目的文档提供了一个演练主题,在这里可能会介绍一种可能的方法,特别是关于访问用户记录(或出现在用户记录中的属性)的调用

正如本演练所讨论的,对
/d2l/api/lp/{version}/users/
进行常规调用有许多方面可以发挥权限的作用:

  • 如果尝试使用查询参数进行筛选,则调用用户上下文是否具有使用要筛选的数据的权限

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

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

用户调用在根组织单元上操作,因此调用用户所需的权限必须在组织组织单元类型上设置

相比之下,与成绩相关的API调用并不在根组织单元上运行,而是通常在课程提供、部分或组上运行。将在关联的组织单元类型中检查围绕调用的权限,因此调用用户需要对这些类型具有正确的权限。此外,许多与课程设置相关的调用(以及部分和组)要求调用用户注册到相关组织单元(在某些情况下,显式注册,而不仅仅是通过级联注册)


如果您确信您的调用用户上下文确实允许您访问这些内容(并允许您通过web UI访问此数据),并且在通过API调用时仍然看到类似的不匹配,那么您可能发现了某种缺陷,您应该询问您组织的支持联系人,或者您的客户经理,打开支持票证,通过Desire2Learn报告。

好吧,我使用的是一个服务帐户(它只是有一个专门为管理员和管理目的而创建的角色),该帐户有权搜索学生、讲师、导师等。它也有查看用户注册的权限。大多数权限是组织级别和课程提供级别。我已启用所有UIP。此外,我还从组织级别进行了级联注册。我无法理解的是,我仍然得到403未授权用于/d2l/api/lp/{version}/users/,无论是否带有查询参数。您的评论似乎与您的原始报告不同:当您进行此调用时,您得到的是403未授权响应,还是200没有返回项?这两个问题表明了不同的问题。如果您得到的是403,那么确切地知道传出HTTP数据包的外观以及从中传入的HTTP响应数据包的外观将非常有用。