我正在尝试使用microsoft OneNote API从onenote课堂笔记书中删除一个学生,但收到以下错误。
{'error':{'code':'19999','message':‘请求失败,接口无法分享更多信息。’,'@api.url':'https://aka.ms/onenote-errors#C19999'}}
我使用的是这里记录的REST API命令https://docs.microsoft.com/en-us/previous-versions/office/office-365-api/how-to/onenote-classnotebook#remove-students-and-teachers
没有图形API REST调用,MS没有在图形中提供任何类notebook调用,并且当前的图形文档指向上述处理类notebook的文档。
下面是我的python代码
onenote_url = 'https://www.onenote.com/api/v1.0/me/notes'
def remove_student_from_notebook( token , studentid , notebookid ):
client = OAuth2Session(token=token)
headers = { 'Authorization': 'Bearer, {}'.format(token), 'Accept': 'application/json' }
url = '{0}/classNotebooks/{1}/students/{2}'.format(onenote_url,notebookid,studentid)
events = client.delete(url, headers=headers )
print( events.json() )我知道ids是正确的,因为我可以使用完全相同的ids将学生添加到班级笔记本中,而不会出现任何问题。
有没有人用过这个API?它起作用了吗?我做错了什么?
发布于 2020-01-27 21:20:29
我找到了问题所在。我之所以使用principleUserName,是因为它是前面获取课堂笔记本中的学生列表的API调用返回的内容。
在我的例子中,出于某种原因,principleUserName类似于
'i:0#.f|membership|name@org.co.uk‘
它包含特殊字符,因此不能构成REST API调用的URL的一部分。
解决方案是去掉principleUserName的第一部分,只使用电子邮件地址,即name@org.co.uk,然后它就可以工作了。
https://stackoverflow.com/questions/59914338
复制相似问题