Разница между идентификатором ноутбука OfficeJS и OneNote API
Я пытаюсь создать надстройку панели задач для OneNote ClassNotebook.
Я хочу знать, является ли текущий пользователь учителем или учеником.
Чтобы достичь этого, мой план был:
1. Получить идентификатор activeNotebook из офиса JS
2. Получить блокноты класса с идентификатором от 1 из OneNote API
3. Используйте учеников и учителей из 2, чтобы проверить, является ли текущий пользователь учеником или учителем
Но id из 2 - это что-то странное, как эта -{3b9c6337-cd8c-5c1c-a87b-1a9515237c48}{1}
Как я могу получить блокнот с этим идентификатором?
Код:
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 ответа
РЕДАКТИРОВАТЬ: Я рад сказать, что это теперь доступно, используйте GetRestApiID для этого.
https://github.com/OfficeDev/office-js-docs/blob/master/reference/onenote/page.md#getRestApiId
В настоящий момент API-интерфейсы OneNote REST и надстройки OneNote имеют несовместимые идентификаторы. Для этого есть запись в пользовательском счете: https://onenote.uservoice.com/forums/245490-onenote-developer-apis/suggestions/17010982-add-onenote-add-ins-to-onenote-api-compatible-ids
На данный момент вам придется полагаться на что-то вроде URL или имен.
Идентификатор между REST API и JavaScript API несовместим. Что совместимо, так это ClientUrl.
В JavaScript API есть notebook.ClientUrl В Rest API он имеет oneNoteClientUrl.