如果组包含禁用用户,创建 class 笔记本将失败,即使创建调用的教师、学生部分为空
Create class notebook fails if group contains disabled users, even if teacher, student sections of create call is empty
这是重现错误的场景:
- 获取 Microsoft 教育租户(演示租户就足够了)
- 使用有效的 office 365 许可证和使用位置创建新用户
- 在 Azure 门户中禁用帐户(设置阻止登录)为 true
- 创建一个群组并将此用户添加为成员
这是我们需要的最低场景。组内也可以有其他(启用的)用户,但这不会改变行为。现在让我们按照documentation创建一个class笔记本:
POST https://www.onenote.com/api/v1.0/myOrganization/groups/{groupId}/notes/classNotebooks/?omkt=de-de
{
"name": "Class notebook of my group",
"teachers": [],
"students": [],
"studentSections": [],
"hasTeacherOnlySectionGroup": true
}
因此,统一组只有一个成员的帐户被禁用,但此特定用户未添加到创建请求的教师或学生部分。然而,出现以下错误消息:
System.Net.Http.HttpRequestException: Response status code does not indicate success: 404 (NotFound).
{
"error": {
"code": "30109",
"message": "The following users are invalid: Message: Der angegebene Benutzer disabled.user@mydomain.com wurde nicht gefunden., ServerErrorCode: -2146232832, ServerErrorTypeName: Microsoft.SharePoint.SPException",
"@api.url": "https://aka.ms/onenote-errors#C30109"
}
}
错误消息不明确,但 Teachers
映射 Owners
,Students
映射到 Members
。因此,即使您没有在 students
集合中指定此用户,他们也是该组的成员,因此他们被视为 students
集合的一部分。
当遇到这样的 30109
错误时,唯一的解决方法是遍历所有者和成员并删除所有禁用的帐户,或者解析 message
属性 UPN(disabled.user@mydomain.com
)。我知道这不太理想。
在得到 Marc 的澄清后,我们目前的程序如下:
- 获取所有禁用用户的列表。
- 全部启用。
- 等一分钟(因为 Graph 需要一些时间来传播它)。
- 通过 OneNote 创建课程笔记本API。
- 再次禁用初始列表中的所有用户。
有了这个一切都按预期工作。
这是重现错误的场景:
- 获取 Microsoft 教育租户(演示租户就足够了)
- 使用有效的 office 365 许可证和使用位置创建新用户
- 在 Azure 门户中禁用帐户(设置阻止登录)为 true
- 创建一个群组并将此用户添加为成员
这是我们需要的最低场景。组内也可以有其他(启用的)用户,但这不会改变行为。现在让我们按照documentation创建一个class笔记本:
POST https://www.onenote.com/api/v1.0/myOrganization/groups/{groupId}/notes/classNotebooks/?omkt=de-de
{
"name": "Class notebook of my group",
"teachers": [],
"students": [],
"studentSections": [],
"hasTeacherOnlySectionGroup": true
}
因此,统一组只有一个成员的帐户被禁用,但此特定用户未添加到创建请求的教师或学生部分。然而,出现以下错误消息:
System.Net.Http.HttpRequestException: Response status code does not indicate success: 404 (NotFound).
{
"error": {
"code": "30109",
"message": "The following users are invalid: Message: Der angegebene Benutzer disabled.user@mydomain.com wurde nicht gefunden., ServerErrorCode: -2146232832, ServerErrorTypeName: Microsoft.SharePoint.SPException",
"@api.url": "https://aka.ms/onenote-errors#C30109"
}
}
错误消息不明确,但 Teachers
映射 Owners
,Students
映射到 Members
。因此,即使您没有在 students
集合中指定此用户,他们也是该组的成员,因此他们被视为 students
集合的一部分。
当遇到这样的 30109
错误时,唯一的解决方法是遍历所有者和成员并删除所有禁用的帐户,或者解析 message
属性 UPN(disabled.user@mydomain.com
)。我知道这不太理想。
在得到 Marc 的澄清后,我们目前的程序如下:
- 获取所有禁用用户的列表。
- 全部启用。
- 等一分钟(因为 Graph 需要一些时间来传播它)。
- 通过 OneNote 创建课程笔记本API。
- 再次禁用初始列表中的所有用户。
有了这个一切都按预期工作。