OfficeJS和OneNote API之间的笔记本ID之间的差异

时间:2016-11-08 15:48:08

标签: office365api office365-apps onenote-api

我正在尝试为OneNote ClassNotebook构建任务窗格加载项。

我想知道当前用户是教师还是学生。

为实现这一目标,我的计划是:
1.从officeJS获取activeNotebook的ID 2.从OneNote API获取ID为1的班级笔记本 3.使用2的学生和老师检查当前用户是学生还是教师

但是来自2的id是一种奇怪的形式 - {3b9c6337-cd8c-5c1c-a87b-1a9515237c48}{1}

如何获取具有该ID的笔记本?

代码:

let notebook = ctx.application.getActiveNotebook();
notebook.load('id,name,clientUrl');
return ctx.sync().then(() => {
  fetch({
    url: `https://www.onenote.com/api/v1.0/me/notes/classNotebooks/${notebook.id}?expand=students,teachers`
  });
});

2 个答案:

答案 0 :(得分:2)

编辑:我很高兴地说现在已经可以使用GetRestApiID了。

https://github.com/OfficeDev/office-js-docs/blob/master/reference/onenote/page.md#getRestApiId

此时,OneNote REST API和OneNote加载项具有不兼容的ID。有一个uservoice条目: https://onenote.uservoice.com/forums/245490-onenote-developer-apis/suggestions/17010982-add-onenote-add-ins-to-onenote-api-compatible-ids

目前,您必须依赖URL或名称等内容。

答案 1 :(得分:1)

REST API和JavaScript API之间的ID不兼容。 兼容的是ClientUrl。

在JavaScript API中,有notebook.ClientUrl 在Rest API中,它有一个NotClientUrl。