首页 > 解决方案 > Microsoft Graph - 教育 API - 学生/教师关系

问题描述

我们在教育环境中使用 Microsoft Graph API 来存储教师创建的学生数据。我们正试图找出一种能够确定的方法:

标签: microsoft-graph-apimicrosoft-graph-edu

解决方案


从技术上讲,您不需要使用 School Data Sync (SDS),但它确实使数据更易于使用且更加一致。这是因为 SDS 会在每次同步时自动填充primaryRoleteacher和数据。student如果没有 SDS,这将需要由您的应用程序确定和更新。这通常是一个不平凡的练习。

也就是说,有几种方法可以确定用户是学生还是教师,而无需依赖primaryRole. 更直接的方式是/taughtClasses端点。这将返回用户拥有/教授的类的集合:

GET beta/education/users/{id|userPrincipalName}/taughtClasses

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(microsoft.graph.educationClass)",
  "value": [
    {
      "id": "c4c1b1e9-bd8e-4ffc-acb4-e7745342bf6d",
      "description": "PrimaryTestClass",
      "displayName": "PrimaryTestClass",
      "mailNickname": "PrimaryTestClass",
      "classCode": "21001",
      "externalName": "PrimaryTestClass",
      "externalId": "21001",
      "externalSource": "sis",
      "term": {
        "externalId": "12000",
        "startDate": "2017-07-01",
        "endDate": "2018-06-30",
        "displayName": "SY1516"
      },
      "course": {
        "subject": "PrimaryTestClass",
        "courseNumber": "101",
        "description": "PrimaryTestClass",
        "displayName": "PrimaryTestClass",
        "externalId": "21001"
      }
    },
    {
      "id": "8a15c9c0-13ed-464a-81ec-a6fb2d571599",
      "description": "Health Level 1",
      "displayName": "Health 1",
      "mailNickname": "fineartschool.net",
      "externalSource": "sis",
      "externalName": "Health Level 1",
      "externalId": "11019",
      "classCode": "Health 501",
      "createdBy": {
        "application": {
          "id": "a0c464d5-af1f-4bb9-bbdd-196bd577c796"
        },
        "user": {
          "id": "7cea8be3-ceec-4200-b224-4845c8e38363"
        }
      }
    }
  ]
}

确定哪个老师教哪个学生更棘手。您可以获取他们所属的班级列表,beta/education/users/{id}/classes但您需要遍历beta/education/classes/c4c1b1e9-bd8e-4ffc-acb4-e7745342bf6d/teachers?$select=id,userPrincipalName列表以通过查询编译完整的教师列表来获取每个班级的教师列表。

至于应用程序与委托,教育 API 在委托范围方面故意非常严格。这是由于学生信息的高度敏感性质以及该数据收到的可理解的安全审查级别。


推荐阅读