首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用API从onenote课堂笔记本中删除学生时出错

使用API从onenote课堂笔记本中删除学生时出错
EN

Stack Overflow用户
提问于 2020-01-26 07:36:09
回答 1查看 116关注 0票数 0

我正在尝试使用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代码

代码语言:javascript
复制
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?它起作用了吗?我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 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,然后它就可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59914338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档