.NET-HILFE

MS Graph .NET (Wie es für Entwickler funktioniert)

Veröffentlicht 29. April 2024
Teilen Sie:

MS Graph .NET dient als Zugangsdaten-Tool für Interaktionen mit der Microsoft Graph API, einem zentralen Bestandteil des Azure Active Directory (Azure AD) ökosystem. Microsoft Graph ist ein Tor zu Daten und Informationen in Microsoft 365. Es ermöglicht Entwicklern den Zugriff, die Verwaltung und die Analyse von Daten über verschiedene Microsoft-Dienste hinweg. Die Microsoft Graph-Client-Bibliothek vereinfacht diesen Prozess, indem sie eine Reihe von Methoden für die einfache Interaktion mit der API bereitstellt.

IronPDF ist eine Bibliothek zur Erzeugung von PDF-Dokumenten in .NET-Anwendungen. Es wandelt HTML in PDF umdie Software eignet sich daher für die automatische Erstellung von Berichten, Rechnungen und Dokumentationen. IronPDF arbeitet gut mit .NET-Anwendungen zusammen und bietet einen unkomplizierten Ansatz zur PDF-Erzeugung.

Die Kombination von MS Graph .NET und IronPDF ermöglicht es Entwicklern, Anwendungen zu erstellen, die Microsoft 365-Daten bearbeiten und PDF-Dokumente erstellen können. Diese Kombination eignet sich hervorragend für die Entwicklung von Geschäftsanwendungen, die Daten von Microsoft-Diensten benötigen und diese Daten in einem standardisierten Dokumentenformat darstellen müssen.

Erste Schritte mit MS Graph .NET

Einrichten von MS Graph .NET in .NET-Projekten

Um MS Graph .NET effektiv zu nutzen, insbesondere bei der Arbeit mit Benutzer-IDs in .NET Core-Projekten, ist die Einrichtung Ihres .NET-Projekts der erste Schritt. Hier sind die Schritte:

  1. Öffnen Sie den NuGet-Paketmanager.

  2. Suchen Sie nach Microsoft.Graph.

    1. Installieren Sie das Paket Microsoft.Graph.

    MS Graph .NET (Wie es für Entwickler funktioniert): Abbildung 1

    Dieser Vorgang fügt MS Graph .NET zu Ihrem Projekt hinzu. Jetzt können Sie mit dem Programmieren beginnen.

Ein grundlegendes Code-Beispiel

Angenommen, Sie möchten die Profilinformationen des aktuellen Benutzers abrufen. Hier ist ein einfaches Codebeispiel:

var clientId = "Your_Application_Id";
var tenantId = "Your_Tenant_Id";
var clientSecret = "Your_Client_Secret";
var scopes = new [] { "User.Read" };
var options = new TokenCredentialOptions
{
    AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
};
var clientSecretCredential = new ClientSecretCredential(
    tenantId, clientId, clientSecret, options);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
var user = await graphClient.Me
    .Request()
    .GetAsync();
Console.WriteLine($"Hello, {user.DisplayName}!");
var clientId = "Your_Application_Id";
var tenantId = "Your_Tenant_Id";
var clientSecret = "Your_Client_Secret";
var scopes = new [] { "User.Read" };
var options = new TokenCredentialOptions
{
    AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
};
var clientSecretCredential = new ClientSecretCredential(
    tenantId, clientId, clientSecret, options);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
var user = await graphClient.Me
    .Request()
    .GetAsync();
Console.WriteLine($"Hello, {user.DisplayName}!");
Dim clientId = "Your_Application_Id"
Dim tenantId = "Your_Tenant_Id"
Dim clientSecret = "Your_Client_Secret"
Dim scopes = { "User.Read" }
Dim options = New TokenCredentialOptions With {.AuthorityHost = AzureAuthorityHosts.AzurePublicCloud}
Dim clientSecretCredential As New ClientSecretCredential(tenantId, clientId, clientSecret, options)
Dim graphClient = New GraphServiceClient(clientSecretCredential, scopes)
Dim user = Await graphClient.Me.Request().GetAsync()
Console.WriteLine($"Hello, {user.DisplayName}!")
VB   C#

Dieses Codeschnipsel demonstriert die Erstellung einer neuen Instanz von GraphServiceClient unter Verwendung eines Client-Geheimnisses für die Azure AD-Authentifizierung. Zur Authentifizierung werden die Anmeldedaten des Clients verwendet. Dann wird der Anzeigename des aktuellen Benutzers abgerufen. Stellen Sie mit den folgenden Codeschnipseln sicher, dass MS Graph .NET zusammen mit den Konfigurationen Ihres Authentifizierungsanbieters zu Ihrem Projekt hinzugefügt wird.

Merkmale von MS Graph .NET

Abrufen von Benutzer-E-Mails

Um E-Mails aus dem Microsoft-Konto-Postfach eines Benutzers abzurufen, verwenden Sie die Berechtigung Mail.Read. Hier sehen Sie, wie Sie die neuesten E-Mails auflisten können:

var messages = await graphClient.Me.Messages
    .Request()
    .Top(10) // Retrieves the top 10 messages
    .GetAsync();
foreach (var message in messages)
{
    Console.WriteLine($"Subject: {message.Subject}");
}
var messages = await graphClient.Me.Messages
    .Request()
    .Top(10) // Retrieves the top 10 messages
    .GetAsync();
foreach (var message in messages)
{
    Console.WriteLine($"Subject: {message.Subject}");
}
Dim messages = Await graphClient.Me.Messages.Request().Top(10).GetAsync()
For Each message In messages
	Console.WriteLine($"Subject: {message.Subject}")
Next message
VB   C#

Dieser Code listet die Betreffe der 10 wichtigsten E-Mails im Posteingang des Benutzers auf.

Eine E-Mail senden

Beim Senden einer E-Mail wird ein Message-Objekt erstellt und versendet:

var message = new Message
{
    Subject = "Hello from MS Graph .NET",
    Body = new ItemBody
    {
        ContentType = BodyType.Text,
        Content = "Hello, this is a test email."
    },
    ToRecipients = new List<Recipient>()
    {
        new Recipient
        {
            EmailAddress = new EmailAddress
            {
                Address = "recipient@example.com"
            }
        }
    }
};
await graphClient.Me.SendMail(message, null)
    .Request()
    .PostAsync();
var message = new Message
{
    Subject = "Hello from MS Graph .NET",
    Body = new ItemBody
    {
        ContentType = BodyType.Text,
        Content = "Hello, this is a test email."
    },
    ToRecipients = new List<Recipient>()
    {
        new Recipient
        {
            EmailAddress = new EmailAddress
            {
                Address = "recipient@example.com"
            }
        }
    }
};
await graphClient.Me.SendMail(message, null)
    .Request()
    .PostAsync();
Dim message As New Message With {
	.Subject = "Hello from MS Graph .NET",
	.Body = New ItemBody With {
		.ContentType = BodyType.Text,
		.Content = "Hello, this is a test email."
	},
	.ToRecipients = New List(Of Recipient)() From {
		New Recipient With {
			.EmailAddress = New EmailAddress With {.Address = "recipient@example.com"}
		}
	}
}
Await graphClient.Me.SendMail(message, Nothing).Request().PostAsync()
VB   C#

Damit wird eine E-Mail mit einem einfachen Textkörper gesendet.

Verwalten von Kalenderereignissen

So fügen Sie ein Ereignis zum Kalender des Benutzers hinzu:

var @event = new Event
{
    Subject = "Team Meeting",
    Body = new ItemBody
    {
        ContentType = BodyType.Html,
        Content = "Discuss project updates."
    },
    Start = new DateTimeTimeZone
    {
        DateTime = "2024-04-15T12:00:00",
        TimeZone = "Pacific Standard Time"
    },
    End = new DateTimeTimeZone
    {
        DateTime = "2024-04-15T14:00:00",
        TimeZone = "Pacific Standard Time"
    },
    Location = new Location
    {
        DisplayName = "Conference Room 1"
    }
};
await graphClient.Me.Events
    .Request()
    .AddAsync(@event);
var @event = new Event
{
    Subject = "Team Meeting",
    Body = new ItemBody
    {
        ContentType = BodyType.Html,
        Content = "Discuss project updates."
    },
    Start = new DateTimeTimeZone
    {
        DateTime = "2024-04-15T12:00:00",
        TimeZone = "Pacific Standard Time"
    },
    End = new DateTimeTimeZone
    {
        DateTime = "2024-04-15T14:00:00",
        TimeZone = "Pacific Standard Time"
    },
    Location = new Location
    {
        DisplayName = "Conference Room 1"
    }
};
await graphClient.Me.Events
    .Request()
    .AddAsync(@event);
Dim [event] As [Event] = New [Event] With {
	.Subject = "Team Meeting",
	.Body = New ItemBody With {
		.ContentType = BodyType.Html,
		.Content = "Discuss project updates."
	},
	.Start = New DateTimeTimeZone With {
		.DateTime = "2024-04-15T12:00:00",
		.TimeZone = "Pacific Standard Time"
	},
	.End = New DateTimeTimeZone With {
		.DateTime = "2024-04-15T14:00:00",
		.TimeZone = "Pacific Standard Time"
	},
	.Location = New Location With {.DisplayName = "Conference Room 1"}
}
Await graphClient.Me.Events.Request().AddAsync([event])
VB   C#

Mit diesem Code wird ein neues Ereignis im Kalender geplant.

Zugriff auf OneDrive-Dateien

Zum Auflisten von Dateien aus dem Stammverzeichnis des OneDrive des Benutzers:

var files = await graphClient.Me.Drive.Root.Children
    .Request()
    .GetAsync();
foreach (var file in files)
{
    Console.WriteLine(file.Name);
}
var files = await graphClient.Me.Drive.Root.Children
    .Request()
    .GetAsync();
foreach (var file in files)
{
    Console.WriteLine(file.Name);
}
Dim files = Await graphClient.Me.Drive.Root.Children.Request().GetAsync()
For Each file In files
	Console.WriteLine(file.Name)
Next file
VB   C#

Dieser Code gibt die Namen der Dateien im Stammverzeichnis von OneDrive aus.

Arbeit mit Teams

Zum Abrufen der Liste der Teams, denen der Benutzer angehört:

var teams = await graphClient.Me.JoinedTeams
    .Request()
    .GetAsync();
foreach (var team in teams)
{
    Console.WriteLine($"Team name: {team.DisplayName}");
}
var teams = await graphClient.Me.JoinedTeams
    .Request()
    .GetAsync();
foreach (var team in teams)
{
    Console.WriteLine($"Team name: {team.DisplayName}");
}
Dim teams = Await graphClient.Me.JoinedTeams.Request().GetAsync()
For Each team In teams
	Console.WriteLine($"Team name: {team.DisplayName}")
Next team
VB   C#

Hier werden die Namen der Teams aufgeführt, denen der Benutzer angehört.

Jede dieser Funktionen demonstriert die Leistungsfähigkeit und Vielseitigkeit von MS Graph .NET. Sie zeigen, wie Sie Microsoft 365-Dienste in Ihre Anwendungen integrieren können.

Integration von MSGraph .NET mit IronPDF

MS Graph .NET (Wie es für Entwickler funktioniert): Abbildung 2

Wenn Sie mit PDFs in Ihren .NET-Anwendungen arbeiten möchten, IronPDF ist eine solide Wahl. Es handelt sich um eine Bibliothek, die Ihren Anwendungen die Möglichkeit gibt, PDF-Dateien zu lesen, zu erstellen und zu bearbeiten, ohne dass andere externe PDF-Tools oder -Software erforderlich sind.

Anwendungsfall: Zusammenführung von IronPDF mit MSGraph .NET

Stellen Sie sich vor, Sie erstellen eine Anwendung, die Dokumente aus Microsoft 365 abrufen muss, z. B. Berichte oder Rechnungen, und konvertieren sie in PDF-Dateien. MSGraph .NET ermöglicht Ihnen die Interaktion mit Microsoft 365-Ressourcen, einschließlich der in OneDrive oder SharePoint gespeicherten Dateien. Mit IronPDF können diese Dokumente dann in PDF-Dateien umgewandelt werden. Diese Kombination ist besonders nützlich für die automatische Erstellung von Berichten oder die Archivierung von E-Mails und Anhängen im PDF-Format zur einfachen Verteilung.

Code-Beispiel: Von MSGraph zu PDF

Lassen Sie uns ein einfaches Beispiel durchgehen. Wir werden mit MSGraph .NET ein Dokument von OneDrive abrufen und dieses Dokument dann mit IronPDF in ein PDF-Dokument konvertieren. Ich gehe davon aus, dass Sie Ihre Authentifizierung mit MSGraph bereits eingerichtet haben; falls nicht, finden Sie auf der Microsoft-Website eine umfangreiche Dokumentation, die Ihnen den Einstieg erleichtert.

// Simplified example, ensure to handle exceptions and errors appropriately.
using Microsoft.Graph;
using IronPdf;
using System.IO;
class Program
{
    static async Task Main(string [] args)
    {
        var graphClient = new GraphServiceClient(
            new DelegateAuthenticationProvider(
                async (requestMessage) =>
                {
                    // Insert code to acquire token
                    string accessToken = await GetAccessTokenAsync();
                    requestMessage.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
                }));
        // Replace 'itemId' with the ID of your document in OneDrive
        var stream = await graphClient.Me.Drive.Items ["itemId"].Content.Request().GetAsync();
        // IronPDF setup to convert the fetched file to PDF
        var renderer = new HtmlToPdf();
        var pdfDocument = renderer.RenderHtmlAsPdf(streamToString(stream));
        // Save the PDF to a file
        pdfDocument.SaveAs("YourDocument.pdf");
    }
    static string streamToString(Stream stream)
    {
        using (var reader = new StreamReader(stream))
        {
            return reader.ReadToEnd();
        }
    }
    static async Task<string> GetAccessTokenAsync()
    {
        // Implement your authentication logic here to return the access token
        return "your_access_token";
    }
}
// Simplified example, ensure to handle exceptions and errors appropriately.
using Microsoft.Graph;
using IronPdf;
using System.IO;
class Program
{
    static async Task Main(string [] args)
    {
        var graphClient = new GraphServiceClient(
            new DelegateAuthenticationProvider(
                async (requestMessage) =>
                {
                    // Insert code to acquire token
                    string accessToken = await GetAccessTokenAsync();
                    requestMessage.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
                }));
        // Replace 'itemId' with the ID of your document in OneDrive
        var stream = await graphClient.Me.Drive.Items ["itemId"].Content.Request().GetAsync();
        // IronPDF setup to convert the fetched file to PDF
        var renderer = new HtmlToPdf();
        var pdfDocument = renderer.RenderHtmlAsPdf(streamToString(stream));
        // Save the PDF to a file
        pdfDocument.SaveAs("YourDocument.pdf");
    }
    static string streamToString(Stream stream)
    {
        using (var reader = new StreamReader(stream))
        {
            return reader.ReadToEnd();
        }
    }
    static async Task<string> GetAccessTokenAsync()
    {
        // Implement your authentication logic here to return the access token
        return "your_access_token";
    }
}
' Simplified example, ensure to handle exceptions and errors appropriately.
Imports Microsoft.Graph
Imports IronPdf
Imports System.IO
Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		Dim graphClient = New GraphServiceClient(New DelegateAuthenticationProvider(Async Sub(requestMessage)
					' Insert code to acquire token
					Dim accessToken As String = Await GetAccessTokenAsync()
					requestMessage.Headers.Authorization = New System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken)
		End Sub))
		' Replace 'itemId' with the ID of your document in OneDrive
		Dim stream = Await graphClient.Me.Drive.Items ("itemId").Content.Request().GetAsync()
		' IronPDF setup to convert the fetched file to PDF
		Dim renderer = New HtmlToPdf()
		Dim pdfDocument = renderer.RenderHtmlAsPdf(streamToString(stream))
		' Save the PDF to a file
		pdfDocument.SaveAs("YourDocument.pdf")
	End Function
	Private Shared Function streamToString(ByVal stream As Stream) As String
		Using reader = New StreamReader(stream)
			Return reader.ReadToEnd()
		End Using
	End Function
	Private Shared Async Function GetAccessTokenAsync() As Task(Of String)
		' Implement your authentication logic here to return the access token
		Return "your_access_token"
	End Function
End Class
VB   C#

In diesem Code sind einige Dinge zu beachten:

  • Wir verwenden MSGraph, um auf eine in OneDrive gespeicherte Datei zuzugreifen. Sie benötigen die ID des Elements, die Sie über die Graph-API erhalten können.
  • Für dieses Beispiel wandeln wir den Dateistrom in eine Zeichenkette um. Dies funktioniert gut für HTML-Dokumente. Wenn Sie es mit Binärdateien zu tun haben (wie Word-Dokumente)müssen Sie eine andere Methode verwenden, um diese Dateien in PDF-Dateien umzuwandeln.
  • Die Methode RenderHtmlAsPdf von IronPDF wird hier verwendet, um aus einem HTML-String ein PDF zu erstellen. Wenn Ihr Quelldokument nicht HTML ist, bietet IronPDF Methoden, um auch mit anderen Formaten zu arbeiten.

    Bedenken Sie, dass dies ein vereinfachtes Beispiel ist. In einer realen Anwendung müssen Sie die Authentifizierung robuster handhaben, Fehler verwalten und möglicherweise mit verschiedenen Dateiformaten besser umgehen können. Aber dies sollte Ihnen einen guten Ausgangspunkt für die Integration von MSGraph und IronPDF in Ihre .NET-Projekte geben.

Schlussfolgerung

MS Graph .NET (Wie es für Entwickler funktioniert): Abbildung 3

Für Entwickler, die Microsoft 365-Funktionen in ihre C#-Anwendungen integrieren möchten, ist das MS Graph .NET SDK ein wichtiges Tool. Beginnen Sie mit der Erkundung der offizielle Dokumentation ab $749.

< PREVIOUS
Livecharts C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
C# Ref (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >