Microsoft Graph is a RESTful web API that enables you to access Microsoft Cloud service resources. In this article, we will go through the requests we have to make in order to access the documents in a SharePoint Document Library.

Prerequisites:

  • Register an Azure AD app and allow the app to have full/read control to SharePoint sites in all site collections without a signed-in user. Refer the Microsoft Graph permissions reference here
  • Note down the Application ID(Client ID) and Key(Client Secret)
  • Download and install Postman that simplifies the API testing or any API Testing Tool

REST Calls involved

Get Access Token 

To call Microsoft Graph, your app must acquire an access token from Azure Active Directory (Azure AD), Microsoft’s cloud identity service. Access tokens issued by Azure AD are base 64 encoded JSON Web Tokens (JWT). They contain information (claims) that web APIs secured by Azure AD, like Microsoft Graph, use to validate the caller and to ensure that the caller has the proper permissions to perform the operation they’re requesting.

Copy “access_token” value from the following API call’s reponse. This value will be used in the subsequent REST API calls as bearer token.

screen-shot-2019-09-12-at-7.53.13-pm

Replace:

{tenant-id} with your Office 365 Tenant ID. You can find the same from here.

{client-id} with Application ID copied from Azure AD Application.

{client-secret} with Key(Client Secret) copied from Azure AD Application.

Get SharePoint Site ID

We have to get the SharePoint Site ID(highlighted) where document library is located using the following url:

https://graph.microsoft.com/v1.0/sites/{host-name}:/{server-relative-path}

Replace:

{host-name} with your SharePoint online root site url.

{server-relative-path} with site’s relative path.

screen-shot-2019-09-12-at-7.53.52-pm

Get Document Libraries from a SharePoint Site

To get a list of document libraries from a SharePoint site, call the following endpoint:

https://graph.microsoft.com/v1.0/sites/{site-id}/drives

Replace:

{site-id} with the site id received in the previous step.

screen-shot-2019-09-12-at-7.54.19-pm

Get Files from a Document Library 

To get a list of files in a document library, call the following endpoint:

https://graph.microsoft.com/v1.0/sites/{site-id}/drives/{drive-id}/root/children

Replace:

{site-id} with the site id received in the previous step.

{drive-id} with one of the document library id received in the previous step.

screen-shot-2019-09-12-at-7.54.50-pm

Get a Specific File from a Document Library

To get a specific file from a document library, call the following endpoint:

https://graph.microsoft.com/v1.0/sites/{site-id}/drives/{drive-id}/root:/{item-path}

Replace:

{site-id} with the site id received in the previous step.

{drive-id} with one of the document library id received in the previous step.

{item-path} with file name or path.

screen-shot-2019-09-12-at-7.55.21-pm

Note: Use the field “@microsoft.graph.downloadUrl” in order to download the file, this link will allow you to get the file without any authentication token.

Download the sample Postman Collection here

I hope this article has helped you to understand the REST API calls required to reach a file in a SharePoint Document Library using Graph API.

Useful References

How to download files from OneDrive/SharePoint Online in SPFx with Microsoft Graph

Sharing is Caring !