我正在进行微软教育的集成,并且遇到了关于用户和作业之间关系的问题 .

首先,我在educationAssignment上使用assignTo - 属性将包含已分配用户(或educationAssignmentRecipients?)的列表 . 但是,它似乎只包含有关受让人是 class 还是某些个人的信息 . 因此,我开始探索可能性 - 在受让人是个人的情况下 - 使用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 endpoints 文档的一些链接 .

Listing assignments

Listing members

Update: 我试过这个:graph.microsoft.com/beta/education/classes/[class-id]?$expand=members($expand=Assignments)

它可能更接近于正确的方式,但我收到此错误消息:“不支持嵌套展开\”assignments \“on on”microsoft.graph.educationUser \“实体类型 . ”

可能是分配不能扩展吗?

Update: 好的,所以我意识到在指定的educationAssignments上,为每个指定的个人创建了一个提交对象 . 所以我到目前为止找到的这个问题的解决方案是检查赋值的 assignDate . 如果已经分配了(换句话说 - 它也有一个 assignedDate ) - 我可以获得有一个或多个 recipients 且id为 educationUser 的提交 . 如果 assignDate 将来(并且没有 assignedDate ) - 我必须等待分配任务 . 它不是最佳解决方案,但在我的情况下效果很好 .