Created by Microsoft Corporation, 2015. Provided As-is without warranty. Trademarks mentioned here are the property of their owners.
- Universal Windows apps
- This is a newer and better version of the previously released oneNote API WinStore and WinPhone code samples. Use this code sample to build universal Windows 8.1 and above apps.
- As of August 2015, this code sample contains examples of all shipped features as well as most of the beta features released by the OneNote API team.
If you wish to ignore the app UI/design and directly get to the part that interacts with the OneNote API, you can find the code under the OneNoteServiceSamplesWinUniversal.Shared/OneNoteApi folder.
You can find additional documentation at the links below.
- Authenticate the user using the OnlineIdAuthenticator API
- In our previous WinStore and WinPhone Code samples we demonstrated how to use the LiveSDK to do OAuth against the Microsoft Account service. This code sample, demonstrates an alternative way to do OAuth using the new Windows.Security.Authentication.OnlineId.OnlineIdAuthenticator class. Both the existing Live SDK approach and this alternative will work in Windows 8.1 universal apps
- The usage of the OnlineIdAuthenticator class is based on the Windows universal code sample
- Create Pages:
- POST simple HTML to a new OneNote Quick Notes page
- POST multi-part message with image data included in the request
- POST page with a snapshot of an embedded web page HTML
- POST page with a URL rendered as an image
- POST page with a file attachment
- POST page with a PDF file rendered and attached
- POST page with note tags
- POST page with a business card automatically extracted from an image
- POST page with a recipe automatically extracted from a URL
- POST page with a product info automatically extracted from a URL
- Extract the returned oneNoteClientURL and oneNoteWebURL links
- POST page in a specific named section
- POST page under a specific notebook and section
- Query and Search Pages:
- GET a paginated list of all pages in OneNote
- GET metadata for a specific page
- GET pages with title containing a specific substring using the $filter query parameter and contains method
- GET pages using OData v4 query parameters like $skip and $top
- GET a sorted list of pages using the $orderby query parameter
- GET selected metadata for pages using the $select query parameter
- GET pages containing the matching search term using the search query parameter
- GET back a specific page's content as HTML
- Manage Notebooks and Sections:
- GET all notebooks and sections in one round trip using the $expand query parameter
- GET a list of all notebooks
- GET metadata for a specific notebook
- GET a list of all sections
- GET metadata for a specific section
- GET a list of all section groups
- GET notebooks and sections with a specific name using the $filter query parameter
- GET notebooks shared by others using the $filter query parameter and userRole property
- GET a sorted list of notebooks using the $orderby query parameter
- GET selected metadata for notebooks using the $select query parameter
- GET a list of all sections under a specific notebook
- POST a new notebook
- POST a new section group under a specific notebook
- POST a new section group under a specific section group
- POST a new section under a specific notebook
- POST a new section under a specific section group
- Update Pages:
- Examples of PATCH Pages
- Delete Pages:
All the APIs for Microsoft Account (LiveId) are supported in O365 as well except the following:
- $search query option is currently not supported.
Tools and Libraries you will need to download, install, and configure for your development environment.
- Operating system requirements for developing Windows universal apps:
- Client: Windows 8.1 OR
- Server: Windows Server 2012 R2
- Phone: Windows Phone 8.1 (developer unlocked phone for device testing. Alternatively emulators can be used)
- Visual Studio 2013 Update 4 or later.
Be sure you enable the Windows Phone SDK when you install Visual Studio. If you don't, you will need to un-install and re-install Visual Studio to get those features.
For using emulator (Windows Phone), make sure to enable hyper-v
- You can get a full list of tools needed to build Universal Windows app here
** O365 specific Pre-requisites
-
What you need to do is to go to Programs and Features, Turn on/off Windows features and then choose to add Windows Identity Foundation 3.5 to your system.
-
NuGet packages used in the sample. These are handled using the package manager, as described in the setup instructions. These should update automatically at build time; if not, make sure your NuGet package manager is up-to-date. You can learn more about the packages we used at the links below.
- Newtonsoft Json.NET package provides Json parsing utilities.
- Active Directory Authentication Library package provides AAD authentication utilities (for Office 365)
To use this Code Sample in your own Microsoft Account based app, be sure to do the following:
- As the developer, you'll need to have a Microsoft account and get a client ID string so your app can authenticate. Get a client ID string and copy it into the file under .../OneNoteServiceSamplesWinUniversal.Shared/OneNoteApi/LiveIdAuth.cs (~line 54).
- Use the least permissible scopes by editing .../OneNoteServiceSamplesWinUniversal.Shared/OneNoteApi/LiveIdAuth.cs (~line 61).
- Create an app package and use appropriate certificates
**To use this Code Sample in your own Microsoft Office 365 based app, refer to the details in the blog Support for work and school notebooks on Office 365
After you've set up your development tools, and installed the prerequisites listed above,...
-
Download the repository as a ZIP file to your local computer, and extract the files. Or, clone the repository into a local copy of Git.
-
Open the project (.sln file) in Visual Studio.
-
It is highly recommended that you get your own client ID string and copy it into the file under .../OneNoteServiceSamplesWinUniversal.Shared/OneNoteApi/LiveIdAuth.cs (~line 54) OR .../OneNoteServiceSamplesWinUniversal.Shared/OneNoteApi/o365Auth.cs (~line 40)
-
For o365, additionally, change RedirectUri to one of your app under .../OneNoteServiceSamplesWinUniversal.Shared/OneNoteApi/o365Auth.cs (~line 52)
-
Build and run the application (F5).
(If your copy of NuGet is up-to-date, it should automatically update the packages. If you get package-not-found errors, update NuGet and rebuild, and that should fix it.)
If you get any build or deployment errors related to the Publisher of the app (Microsoft Account), be sure to Create LiveId app package and use appropriate certificates
If you get any build or deployment errors related to the Publisher of the app (Microsoft Office 365), be sure to Have your app appear in the Office 365 app launcher
Date | Change |
---|---|
August 2015 | Added beta POST /sectiongroups/{id}/sections , POST /notebooks/{id}/sectiongroups , and POST /sectiongroups/{id}/sectiongroups examples.Changed DELETE /pages/{id} from beta to v1.0.Support for POST /pages and POST /pages?sectionName in Office 365. |
April 2015 | Added Office 365 with Azure AD auth support Added beta DELETE /pages/{id} example. |
March 2015 | Added PATCH example |
January 2015 | Added GET /sections/{id}/pages examples. |
December 2014 | Initial public release for this code sample. |
- Visit the dev.onenote.com Dev Center
- Contact us on StackOverflow (tagged OneNote)
- Follow us on Twitter @onenotedev
- Read our OneNote Developer blog
- Explore the API using the apigee.com interactive console OR the apiary.io interactive console. Also, see the short overview/tutorial.
- API Reference documentation
- Debugging / Troubleshooting
- Getting Started with the OneNote service API
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.