SharePoint Rest API how to get Access Token?

To call SharePoint specific APIs you need to get a SPO specific access token. You can “swap” an regular MS Graph refresh token for an SPO specific token by doing the following:

  1. Get a delegated auth token from graph as you normally would
    (https://learn.microsoft.com/en-us/graph/auth-v2-user)
  2. Use the refresh_token you got and exchange it for an SPO access token by calling the auth endpoint again:
POST https://login.microsoftonline.com/{{tenantName}}/oauth2/v2.0/token

With the following form data:

client_id=<APP ID>
client_secret=<APP SECRET>
refresh_token=<REFRESH TOKEN FROM ABOVE>
grant_type=refresh_token
scope=https://<YOUR TENANT NAME>.sharepoint.com/Sites.Read.All
  1. Take the access token and call the SPO API

You must ensure your app is registered with the correct permissions. In the case above the app must have Sites.Read.All for example.

Leave a Comment