我正在与Microsoft教育集成,并且遇到了有关用户与作业之间关系的问题。
首先,我要使educationAssignment的assignTo-属性包含一个已分配用户(或educationAssignmentRecipients?)的列表。但是,它似乎只包含有关受让人是班级还是某些个人的信息。因此,在受让人是个人的情况下,我开始探讨了使用Odata查询获取实际用户的可能性。首先,我在assignTo-属性上尝试了扩展查询,这显然不起作用。我还尝试在“分配”上展开“用户”,但是似乎无法通过“分配”访问该关系(只能通过“用户”访问。)
然后,我意识到可以通过与此类分配的关系来过滤用户
graph.microsoft.com/beta/education/classes/ [class-id] / members?$ filter = assignments / all(a:a / id eq'[assignment-id]')
和
graph.microsoft.com/beta/education/classes/ [class-id] / members?$ filter = assignment / id eq'[assignment-id]'
和
graph.microsoft.com/beta/education/classes/ [class-id] / members?$ filter = eq(assignment / id,'[assignment-id]')
这些请求都不起作用。
并且我已经基于在线示例尝试了很多组合和语法,但是我找不到能与我想要实现的功能完全匹配的任何东西。简而言之,我想拥有的是:与特定分配ID有关系的所有用户,而无需发出大量请求并遍历用户。
以下是指向API端点文档的链接。
更新: 我尝试这样做: graph.microsoft.com/beta/education/classes/[class-id]?$ expand = members($ expand = Assignments)
这可能是更接近正确的方法,但是我收到此错误消息:“不支持\“ microsoft.graph.educationUser \”实体类型上的\“ assignments \”的嵌套扩展。“ < / p>
可能无法扩展作业吗?
更新: 好的,因此我意识到在分配的educationAssignments上,为每个分配的个人创建了一个提交对象。因此,到目前为止,我发现的解决方案是检查分配的 assignDate 。如果已全部分配(换句话说,它也有一个 assigne d Date ),则我可以获得具有一个或多个收件人的提交 educationUser 的ID。如果 assignDate 是将来的日期(并且没有 assigne d Date ),则-我必须等待分配任务。这不是最佳解决方案,但在我的情况下效果很好。