Code sample with examples of how to use the OneNote API on PHP.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
OneNoteSamplePHP Add example of GET /pages in PHP sample Aug 26, 2015


Created by Microsoft Corporation, 2014. Provided As-is without warranty. Trademarks mentioned here are the property of their owners.

API functionality demonstrated in this sample

The following aspects of the API are covered in this sample. You can find additional documentation at the links below.


Tools and Libraries you will need to download, install, and configure for your development environment.

The PHP sample runs on a web server. The Live Connect OAUTH service and the client browser needs to be able to access the web server to complete the handshake. Make sure that you install the PHP files so that:

  • The web server you're using is accessible from the Internet
  • The web server has PHP installed, with the cURL package enabled
  • You have a normal URL with hostname (not just an IP address) to use for the Redirect URL. If you run this from your own desktop, you'll need to modify your Hosts file (in C:\Windows\System32\drivers\etc for Windows machines and /private/etc for Macs) and map your local server IP address to a new domain name, as in the following example. Modify your Hosts file and map your local server IP address to a new domain name


  • As the developer, you'll need to have a Microsoft account and get a client ID string so your app can authenticate with the Microsoft Live connect SDK.
  • As the user of the sample, you'll need a Microsoft account so the OneNote API can send the pages to your OneDrive.

Register the sample

After you've setup your web server described above,....

  1. Clone the Git repository to a folder on your local machine.
  2. Go to the Microsoft app registration page.
  3. On the API Settings page, set Mobile or desktop setting to No.
  4. Set the Redirect URL to the address of the callback.php file on your hosted deployment. If the root deployment URL is, then specify as the Redirect URL (as in the following example). This URL must exactly match the deployed redirect URL. The root domain name must be unique, so if you use one domain for testing and another for production, you'll need to register separate client ids and secrets for each domain. Specify API settings in the Microsoft Application Registration Portal

Set up the sample

  1. Replace the following placeholders in the callback.php and index.php files with the associated values from the App Settings page:
    1. Replace %CLIENT_ID% with the client ID value.
    2. Replace %CLIENT_SECRET% with the client secret value.
    3. Replace %REDIRECT_URI_PATH% with the value of the deployment root URL. The deployment root URL consists of "http://" plus the root domain URL, so if your redirect URL looks like, the deployment root URL is "" At run time, the redirect URL value will resolve to ""
  2. Put the sample files in the root directory on your web server.
  3. Open a browser and navigate to the default .php page.
  4. Login using your Microsoft account, and allow the app to create pages in your OneNote notebooks.

Version info

This is the initial public release for this code sample.

Known issues

  • If you're running the sample on a web server on a home network, and you don't have a fixed IP address and assigned domain name, you may need to use a DDNS provider, and then forward the HTTP/S ports to your local server.
  • The PHP files in this sample contain CRLF line endings. You'll need to retain these line endings when you open and edit these files in your editor. See Dealing with line endings for guidance on how to retain CRLF line endings on all platforms.

Learning more