Export OneNote notebooks as JSON + HTML using the Microsoft Graph REST API. The Graph Explorer is helpful for learning the API.
Most of the battle is getting access tokens for your personal Microsoft account. Try this "streamlined" process:
- Register an application with MS Graph
- Under the Platforms header, create a web app and set the Redirect URL to
http://localhost:3000/token
- Set the environment variable
CLIENT_ID
to the Application ID generated for your app - Start the Node web app and visit
/login
in your browser - Login to your MS account, getting redirected to
/token
- Copy the access token out of the URL and assign it to the environment variable
ACCESS_TOKEN
- Restart the Node web app
Be warned that the access token expires after an hour or so.
The web app presents a simplified version of Microsoft's API for getting OneNote data:
/notebooks
: Get all notebooks as JSON list./sections
: Get all notebook sections as JSON list./pages
: Get all notebook pages (excluding HTML content) as JSON list./content
: Get all notebook pages (including HTML content) as JSON list.