How can we improve the OneNote APIs and developer platform? Vote for an existing idea or share a new one.

API to let me share a notebook with someone

Just like how a user share a notebook with one or more other users, I want to be able to do this programmatically.

108 votes
Vote
Sign in
(thinking…)
Sign in with: Facebook Google
Signed in as (Sign out)
You have left! (?) (thinking…)
James Lau shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

7 comments

Sign in
(thinking…)
Sign in with: Facebook Google
Signed in as (Sign out)
Submitting...
  • Denis commented  ·   ·  Flag as inappropriate

    Small update.
    It was found that the approach above doesn't work for some work account.
    So we have found another solution based on the fact that OneNote notebook id is almost OneDrive file eTag property (substring).
    So you can find OneDrive file via me/drive/root/search(q='{${oneDriveETag}}') request and then share it using invite endpoint.

    You can find some details here
    https://github.com/denis1stomin/okeears/blob/master/webui/src/services/okrservice.js#L230

    The main problem this dirty trick doesn't work on non-English locales :(
    We really don't want to implement the switch like that =))
    https://github.com/SharePoint/PnP-Sites-Core/blob/master/Core/OfficeDevPnP.Core/Extensions/SecurityExtensions.cs#L168

    So OneNote team please provide "universal" share endpoint :)
    Thanks

  • Denis commented  ·   ·  Flag as inappropriate

    The main problem with OneDrive sharing is that you cannot find the notebook file path since the path is localized. Currently we use "links.oneNoteWebUrl.href" field from OneNote API to get notebook file path but this is kinda tricky approach.
    Is it somehow possible to get OneDrive file GUID for notebook using OneNote API?

    Looks like there is some correlation but it looks really messy
    https://stackoverflow.com/questions/51363498/relationship-between-sharepointid-and-onenote-guid

    Also when a notebook is shared using OneDrive API, when you get its properties using Graph API you see "isShared": false in the response. Kinda messy stuff :)

  • Tom commented  ·   ·  Flag as inappropriate

    Absolutely. I've been test-driving OneNote at work and like it so far, but one of the most useful things about Evernote (my app of choice to this point) has been the ability to share a link to one specific note. I use it all the time to share documents and notes with co-workers. When a tech is in the field and looking for a step-by-step process or specific files, it takes 30 seconds to send a link to that specific note. If I make a change to the note in the future, that link is up to date and they can see the most up to date version, along with the attached files. There should also be an option for a guest link, to not require a log in to see the note.

Feedback and Knowledge Base