|

|  How to Use Microsoft Graph API to Access Planner Tasks in C#

How to Use Microsoft Graph API to Access Planner Tasks in C#

October 31, 2024

Learn to access Microsoft Planner tasks using Graph API in C# with this step-by-step guide. Enhance your productivity with practical coding tips and examples.

How to Use Microsoft Graph API to Access Planner Tasks in C#

 

Introduction to Microsoft Graph API

 

  • Microsoft Graph API is a gateway to access data and intelligence from Microsoft 365. It provides a unified programmability model that you can use to access the tremendous amount of data in Microsoft 365, including the Planner tasks.

 

Create a Microsoft Graph Application

 

  • You will need a registered application in Azure Active Directory (AAD). Make sure your application has the necessary permissions to access Planner tasks. Required permissions usually include `Tasks.ReadWrite` or similar, depending on the level of access your application needs.

 

Obtain Authorization

 

  • For accessing Microsoft Graph API in C#, you need to implement OAuth 2.0 authentication to get an access token. You will be using either the `Authorization Code Grant` or the `Client Credentials Grant` depending on whether you are accessing the data on behalf of a user or on behalf of an application.
  • Use the MSAL (Microsoft Authentication Library) for this purpose, which simplifies the process.
  • Here is a basic snippet to acquire a token using the client credentials flow:

 

var app = ConfidentialClientApplicationBuilder.Create(clientId)
    .WithClientSecret(clientSecret)
    .WithAuthority(new Uri(authority))
    .Build();

var scopes = new[] { "https://graph.microsoft.com/.default" };

AuthenticationResult result = await app.AcquireTokenForClient(scopes).ExecuteAsync();

string accessToken = result.AccessToken;

 

Install Microsoft Graph SDK

 

  • To facilitate the communication with Microsoft Graph, install the Graph SDK in your project. It provides fluent models and helpers that make API interactions simple and intuitive.
  • Use the Package Manager Console to install the Microsoft Graph SDK:

 

Install-Package Microsoft.Graph

 

Setup the Graph Service Client

 

  • Initialize the GraphServiceClient with your access token. The GraphServiceClient is the main class you will use to make requests to Microsoft Graph.

 

GraphServiceClient graphClient = new GraphServiceClient(
    new DelegateAuthenticationProvider((requestMessage) =>
    {
        requestMessage.Headers.Authorization =
            new AuthenticationHeaderValue("bearer", accessToken);

        return Task.CompletedTask;
    }));

 

Access Plans and Tasks

 

  • Retrieve the list of plans to which a user has access using `graphClient`. Plans are part of the Planner, and each plan can contain several tasks.
  • For accessing tasks under a specific plan, you need the plan's ID. Retrieve tasks using the plan ID, as shown below:

 

// Retrieve planner plans
var plans = await graphClient.Me.Planner.Plans.Request().GetAsync();

foreach (var plan in plans)
{
    Console.WriteLine($"Plan: {plan.Title}");
    
    // Retrieve tasks for a specific planner plan
    var tasks = await graphClient.Planner.Plans[plan.Id].Tasks.Request().GetAsync();
    
    foreach (var task in tasks)
    {
        Console.WriteLine($"Task: {task.Title} - Due: {task.DueDateTime}");
    }
}

 

Handling Errors and Pagination

 

  • Since Planner may return numerous tasks or plans, Microsoft Graph API handles pagination. Always check for additional pages of results using the `NextPageRequest` property.
  • Handle exceptions such as authentication failures, network errors, etc., using try-catch blocks around your asynchronous API requests.

 

try
{
    var tasks = await graphClient.Me.Planner.Tasks.Request().GetAsync();
    
    if (tasks.NextPageRequest != null)
    {
        // Fetch additional pages
        var moreTasks = await tasks.NextPageRequest.GetAsync();
    }
}
catch (ServiceException ex)
{
    Console.WriteLine($"Error: {ex.Message}");
}

 

Conclusion

 

  • Using the Microsoft Graph API with C# allows for detailed interaction with Microsoft Planner data, offering the ability to integrate and automate operations within the Microsoft 365 ecosystem.
  • By leveraging the Microsoft Graph SDK, the complexity of making API calls is greatly reduced, facilitating rapid development of functionality.

 

Limited Beta: Claim Your Dev Kit and Start Building Today

Instant transcription

Access hundreds of community apps

Sync seamlessly on iOS & Android

Order Now

Turn Ideas Into Apps & Earn Big

Build apps for the AI wearable revolution, tap into a $100K+ bounty pool, and get noticed by top companies. Whether for fun or productivity, create unique use cases, integrate with real-time transcription, and join a thriving dev community.

Get Developer Kit Now