Giter Club home page Giter Club logo

msgraph-sdk-dotnet's Introduction

Microsoft Graph .NET Client Library

Validate Pull Request NuGet Version

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 = driveItem.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:

Documentation and resources

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 to netstandard2.0
  • .NET Framework minimum version bumped from net45 to net461
  • a change in enum order for GiphyRatingType
  • ParticipantInfo became InvitationParticipantInfo
  • CallRecordRequestBody became CallRecordResponseRequestBody

Upgrading to v4

Between 3.x and 4.x there were some major breaking changes:

  • .NET Standard minimum version bumped from netStandard1.3 to netstandard2.0
  • .NET Framework minimum version bumped from net45 to net462
  • 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 [email protected] with any additional questions or comments.

Other resources

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 and msbuild 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 to 1, 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.

msgraph-sdk-dotnet's People

Contributors

andrueastman avatar michaelmainer avatar peombwa avatar dependabot[bot] avatar baywet avatar ginach avatar zengin avatar vikyding avatar github-actions[bot] avatar shiftylogic avatar darrelmiller avatar tarkansevilmis avatar fey101 avatar garethj-msft avatar pschaeflein avatar mattgeim avatar firomsaa avatar martinm85 avatar microsoft-github-policy-service[bot] avatar tony-xia avatar nokafor avatar sergey-tihon avatar ryanshripat avatar maisarissi avatar gsacavdm avatar gabrielngbtuc avatar ddyett avatar robinherbots avatar phnx47 avatar siavasfiroozbakht avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.