Awesome
Microsoft Graph .NET Client Library
Integrate the Microsoft Graph API into your .NET project!
The Microsoft Graph .NET Client Library targets .NetStandard 2.0.
Installation via NuGet
To install the client library via NuGet:
- Search for
Microsoft.Graph
in the NuGet Library, or - Type
Install-Package Microsoft.Graph
into the Package Manager Console.
Getting started
1. Register your application
Register your application to use Microsoft Graph API using the Microsoft Application Registration Portal.
2. Authenticate for the Microsoft Graph service
The Microsoft Graph .NET Client Library supports the use of TokenCredential classes in the Azure.Identity library.
You can read more about available Credential classes here and examples on how to quickly setup TokenCredential instances can be found here.
The recommended library for authenticating against Microsoft Identity (Azure AD) is MSAL.
For an example of authenticating a UWP app using the V2 Authentication Endpoint, see the Microsoft Graph UWP Connect Library.
3. Create a Microsoft Graph client object with an authentication provider
An instance of the GraphServiceClient class handles building requests,
sending them to Microsoft Graph API, and processing the responses. To create a
new instance of this class, you need to provide an instance of
IAuthenticationProvider
which can authenticate requests to Microsoft Graph.
For more information on initializing a client instance, see the library overview
4. Make requests to the graph
Once you have completed authentication and have a GraphServiceClient, you can begin to make calls to the service. The requests in the SDK follow the format of the Microsoft Graph API's RESTful syntax.
For example, to retrieve a user's default drive:
var drive = await graphClient.Me.Drive.GetAsync();
GetAsync
will return a Drive
object on success and throw a
ApiException
on error.
To get the current user's root folder of their default drive:
// Get the user's driveId
var drive = await graphClient.Me.Drive.GetAsync();
var userDriveId = drive.Id;
// use the driveId to get the root drive
var rootItem = await graphClient.Drives[userDriveId].Root.GetAsync();
GetAsync
will return a DriveItem
object on success and throw a
ApiException
on error.
For a general overview of how the SDK is designed, see overview.
The following sample applications are also available:
- Microsoft Graph UWP Connect Sample
- Microsoft Graph UWP Snippets Sample
- Microsoft Graph MeetingBot sample for UWP
- Microsoft Graph Connect Sample for ASP.NET 4.6
- Microsoft Graph Snippets Sample for ASP.NET 4.6
- Microsoft Graph SDK Snippets Library for Xamarin.Forms
- Microsoft Graph Connect Sample for Xamarin Forms
- Microsoft Graph Meeting Manager Sample for Xamarin.Forms
- Microsoft Graph Property Manager Sample for Xamarin Native
Documentation and resources
- Overview
- Collections
- Errors
- Headers
- Microsoft Graph API
- Release notes
- Blog - Microsoft Graph .NET SDK updates 3/16/20
Notes
Upgrading from v1
Between 1.x and 3.x there were some minor possibly breaking changes:
- .NET Standard minimum version bumped from
netStandard1.3
tonetstandard2.0
- .NET Framework minimum version bumped from
net45
tonet461
- a change in enum order for
GiphyRatingType
ParticipantInfo
becameInvitationParticipantInfo
CallRecordRequestBody
becameCallRecordResponseRequestBody
Upgrading to v4
Between 3.x and 4.x there were some major breaking changes:
- .NET Standard minimum version bumped from
netStandard1.3
tonetstandard2.0
- .NET Framework minimum version bumped from
net45
tonet462
- Replacing Newtosoft.Json with System.Text.Json
- Upgrading Microsoft.Graph.Core dependency to version 2.0.0
View the upgrade guide here.
Upgrading to v5
Between 4.x and 5.x there were several major breaking changes as the SDK now uses Kiota for code generation.
View the upgrade guide here.
Issues
To view or log issues, see issues.
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.
Other resources
- NuGet Package: https://www.nuget.org/packages/Microsoft.Graph
Building library locally
If you are looking to build the library locally for the purposes of contributing code or running tests, you will need to:
- Have the .NET Core SDK (> 1.0) installed
- Run
dotnet restore
from the command line in your package directory - Run
nuget restore
andmsbuild
from CLI or run Build from Visual Studio to restore Nuget packages and build the project
Due to long file names you may need to run
git config --system core.longpaths true
before cloning the repo to your system.
Additionally for Windows OS, set the value of the parameter
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem
LongPathsEnabled
to1
, before opening the solution in VS
License
Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT license. See Third Party Notices for information on the packages referenced via NuGet.