Zum Fußzeileninhalt springen
.NET HILFE

MS Graph .NET (Funktionsweise für Entwickler)

MS Graph .NET dient als Datenzugriffswerkzeug für die Interaktion mit der Microsoft Graph-API, einem zentralen Bestandteil des Azure Active Directory (Azure AD)-Ökosystems. Microsoft Graph ist ein Gateway zu Daten und Intelligenz in Microsoft 365. Es ermöglicht Entwicklern, Daten über verschiedene Microsoft-Dienste hinweg zuzugreifen, zu verwalten und zu analysieren. Die Microsoft Graph-Clientbibliothek vereinfacht diesen Prozess, indem sie eine Reihe von Methoden bereitstellt, um leicht mit der API zu interagieren.

IronPDF ist eine Bibliothek zum Erstellen von PDF-Dokumenten in .NET-Anwendungen. Sie konvertiert HTML in PDF, was es nützlich macht, um Berichte, Rechnungen und Dokumentationen automatisch zu erstellen. IronPDF funktioniert gut mit .NET-Anwendungen und bietet einen unkomplizierten Ansatz zur PDF-Erstellung.

Die Kombination von MS Graph .NET und IronPDF ermöglicht es Entwicklern, Anwendungen zu erstellen, die Microsoft 365-Daten manipulieren und PDF-Dokumente erstellen können. Diese Kombination ist leistungsstark für die Entwicklung von Geschäftsanwendungen, die Daten von Microsoft-Diensten benötigen und diese Daten in einem standardisierten Dokumentformat präsentieren müssen.

Einstieg 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 das Einrichten Ihres .NET-Projekts der erste Schritt. Hier sind die Schritte:

  1. Öffnen Sie den NuGet-Paket-Manager.
  2. Suchen Sie nach Microsoft.Graph.
  3. Installieren Sie das Microsoft.Graph-Paket.

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

Dieser Prozess fügt MS Graph .NET Ihrem Projekt hinzu. Nun sind Sie bereit, damit zu programmieren.

Ein grundlegendes Code-Beispiel

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

// Required namespaces
using Azure.Identity;
using Microsoft.Graph;

// Defining necessary credentials and scope
var clientId = "Your_Application_Id";
var tenantId = "Your_Tenant_Id";
var clientSecret = "Your_Client_Secret";
var scopes = new[] { "User.Read" };

// Configuring TokenCredentialOptions for Azure Public Cloud
var options = new TokenCredentialOptions
{
    AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
};

// Authenticating using client credentials
var clientSecretCredential = new ClientSecretCredential(
    tenantId, clientId, clientSecret, options);

// Creating a new instance of GraphServiceClient
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);

// Fetching current user's profile information
var user = await graphClient.Me
    .Request()
    .GetAsync();

// Printing user's display name
Console.WriteLine($"Hello, {user.DisplayName}!");
// Required namespaces
using Azure.Identity;
using Microsoft.Graph;

// Defining necessary credentials and scope
var clientId = "Your_Application_Id";
var tenantId = "Your_Tenant_Id";
var clientSecret = "Your_Client_Secret";
var scopes = new[] { "User.Read" };

// Configuring TokenCredentialOptions for Azure Public Cloud
var options = new TokenCredentialOptions
{
    AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
};

// Authenticating using client credentials
var clientSecretCredential = new ClientSecretCredential(
    tenantId, clientId, clientSecret, options);

// Creating a new instance of GraphServiceClient
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);

// Fetching current user's profile information
var user = await graphClient.Me
    .Request()
    .GetAsync();

// Printing user's display name
Console.WriteLine($"Hello, {user.DisplayName}!");
$vbLabelText   $csharpLabel

Dieses Codebeispiel zeigt die Erstellung einer neuen Instanz von GraphServiceClient unter Verwendung eines Client Secret für die Azure AD-Authentifizierung. Es verwendet Clientanmeldeinformationen zur Authentifizierung. Dann ruft es den Anzeigenamen des aktuellen Benutzers ab. Stellen Sie danach sicher, dass MS Graph .NET zusammen mit Ihren Authentifizierungsanbieter-Konfigurationen Ihrem Projekt hinzugefügt wird.

Funktionen von MS Graph .NET

Benutzer-E-Mails abrufen

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

// Retrieving the top 10 messages from the user's mailbox
var messages = await graphClient.Me.Messages
    .Request()
    .Top(10)
    .GetAsync();

// Iterating through the messages and printing their subjects
foreach (var message in messages)
{
    Console.WriteLine($"Subject: {message.Subject}");
}
// Retrieving the top 10 messages from the user's mailbox
var messages = await graphClient.Me.Messages
    .Request()
    .Top(10)
    .GetAsync();

// Iterating through the messages and printing their subjects
foreach (var message in messages)
{
    Console.WriteLine($"Subject: {message.Subject}");
}
$vbLabelText   $csharpLabel

Dieser Code listet die Betreffzeilen der 10 aktuellsten E-Mails im Posteingang des Benutzers auf.

E-Mail senden

Das Senden einer E-Mail beinhaltet das Erstellen eines Nachricht-Objekts und das Senden davon:

// Creating a message to be sent
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"
            }
        }
    }
};

// Sending the email
await graphClient.Me.SendMail(message, null)
    .Request()
    .PostAsync();
// Creating a message to be sent
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"
            }
        }
    }
};

// Sending the email
await graphClient.Me.SendMail(message, null)
    .Request()
    .PostAsync();
$vbLabelText   $csharpLabel

Dies sendet eine E-Mail mit einem einfachen Textkörper.

Verwaltung von Kalenderereignissen

Um ein Ereignis zum Kalender des Benutzers hinzuzufügen:

// Creating a calendar 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"
    }
};

// Adding the event to the user's calendar
await graphClient.Me.Events
    .Request()
    .AddAsync(@event);
// Creating a calendar 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"
    }
};

// Adding the event to the user's calendar
await graphClient.Me.Events
    .Request()
    .AddAsync(@event);
$vbLabelText   $csharpLabel

Dieser Code plant ein neues Ereignis im Kalender ein.

Zugriff auf OneDrive-Dateien

Um Dateien aus dem Stammverzeichnis von OneDrive des Benutzers aufzulisten:

// Retrieving files from the root OneDrive folder
var files = await graphClient.Me.Drive.Root.Children
    .Request()
    .GetAsync();

// Printing each file's name
foreach (var file in files)
{
    Console.WriteLine(file.Name);
}
// Retrieving files from the root OneDrive folder
var files = await graphClient.Me.Drive.Root.Children
    .Request()
    .GetAsync();

// Printing each file's name
foreach (var file in files)
{
    Console.WriteLine(file.Name);
}
$vbLabelText   $csharpLabel

Dieser Code druckt die Namen der Dateien im Stammverzeichnis von OneDrive.

Arbeiten mit Teams

Um die Liste der Teams abzurufen, denen der Benutzer angehört:

// Retrieving teams that the user is part of
var teams = await graphClient.Me.JoinedTeams
    .Request()
    .GetAsync();

// Printing each team's display name
foreach (var team in teams)
{
    Console.WriteLine($"Team name: {team.DisplayName}");
}
// Retrieving teams that the user is part of
var teams = await graphClient.Me.JoinedTeams
    .Request()
    .GetAsync();

// Printing each team's display name
foreach (var team in teams)
{
    Console.WriteLine($"Team name: {team.DisplayName}");
}
$vbLabelText   $csharpLabel

Dies listet die Namen der Teams auf, 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 MS Graph .NET mit IronPDF

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

Wenn Sie in Ihren .NET-Anwendungen mit PDFs arbeiten möchten, ist die IronPDF-Bibliothek für .NET-Entwickler eine solide Wahl. Es ist eine Bibliothek, die Ihren Apps die Fähigkeit gibt, PDF-Dateien zu lesen, zu erstellen und zu manipulieren, ohne dass andere externe PDF-Tools oder -Software erforderlich sind.

Benutzungsfall: Zusammenführung von IronPDF mit MS Graph .NET

Stellen Sie sich vor, Sie entwickeln eine Anwendung, die Dokumente von Microsoft 365 abrufen muss, sagen wir Berichte oder Rechnungen, und diese in PDFs umwandeln soll. MS Graph .NET ermöglicht es Ihnen, mit Microsoft 365-Ressourcen zu interagieren, einschließlich Dateien, die in OneDrive oder SharePoint gespeichert sind. IronPDF kann dann verwendet werden, um diese Dokumente zu nehmen und in PDFs umzuwandeln. Diese Kombination ist besonders nützlich für die automatisierte Berichtserstellung oder das Archivieren von E-Mails und Anhängen in einem PDF-Format zur einfachen Verteilung.

Code-Beispiel: Von MS Graph zu PDF

Lassen Sie uns ein einfaches Beispiel durchgehen. Wir werden ein Dokument von OneDrive mithilfe von MS Graph .NET abrufen und dann dieses Dokument mit IronPDF in ein PDF umwandeln. Ich gehe davon aus, dass Sie Ihre Authentifizierung mit MSGraph bereits eingerichtet haben; falls nicht, gibt es auf der Microsoft-Website viele Dokumentationen, um Ihnen den Einstieg zu erleichtern.

// Simplified example, ensure to handle exceptions and errors appropriately.
using Microsoft.Graph;
using IronPdf;
using System.IO;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Setting up the GraphServiceClient with a DelegateAuthenticationProvider
        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");
    }

    // Method to convert a Stream to a String
    static string StreamToString(Stream stream)
    {
        using (var reader = new StreamReader(stream))
        {
            return reader.ReadToEnd();
        }
    }

    // Method to obtain the access token
    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;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Setting up the GraphServiceClient with a DelegateAuthenticationProvider
        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");
    }

    // Method to convert a Stream to a String
    static string StreamToString(Stream stream)
    {
        using (var reader = new StreamReader(stream))
        {
            return reader.ReadToEnd();
        }
    }

    // Method to obtain the access token
    static async Task<string> GetAccessTokenAsync()
    {
        // Implement your authentication logic here to return the access token
        return "your_access_token";
    }
}
$vbLabelText   $csharpLabel

Einige Dinge, die in diesem Code zu beachten sind:

  • Wir verwenden MSGraph, um auf eine Datei zuzugreifen, die in OneDrive gespeichert ist. Sie benötigen die ID des Elements, die Sie über die Graph-API erhalten können.
  • Wir konvertieren den Dateistream für dieses Beispiel in einen String. Das funktioniert gut für HTML-Dokumente. Wenn Sie mit Binärdateien (wie Word-Dokumenten) arbeiten, sollten Sie eine andere Methode verwenden, um diese Dateien in PDFs zu konvertieren.
  • Die Methode RenderHtmlAsPdf von IronPDF wird hier verwendet, um aus einer HTML-Zeichenfolge ein PDF zu erstellen. Wenn Ihr Quelldokument nicht HTML ist, bietet IronPDF auch Methoden zur Arbeit mit anderen Formaten an.

Denken Sie daran, dies ist ein vereinfachtes Beispiel. In einer realen Anwendung müssten Sie die Authentifizierung robuster handhaben, Fehler verwalten und möglicherweise mit unterschiedlichen Dateiformaten eleganter umgehen. Aber dies sollte Ihnen einen guten Ausgangspunkt für die Integration von MSGraph und IronPDF in Ihre .NET-Projekte geben.

Abschluss

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 unverzichtbares Werkzeug. Beginnen Sie mit der Erkundung der MS Graph .NET SDK-Lizenzierungs- und Preisinformationen, die bei $799 beginnen.

Häufig gestellte Fragen

Wie hilft MS Graph .NET Entwicklern beim Zugriff auf Microsoft 365-Daten?

MS Graph .NET fungiert als Gateway für Entwickler, um über die Microsoft Graph-API, die Teil des Azure Active Directory-Ökosystems ist, auf Microsoft 365-Daten zuzugreifen und diese zu verwalten. Es bietet Methoden zur Rationalisierung des Dateninteraktionsprozesses.

Wie können Entwickler in .NET PDF-Dokumente mit Microsoft 365-Daten erzeugen?

Entwickler können IronPDF verwenden, um in .NET-Anwendungen PDF-Dokumente zu erstellen, indem sie HTML und andere Dokumentformate in PDFs konvertieren und Daten nutzen, die über MS Graph .NET abgerufen wurden.

Was wird benötigt, um mit der Nutzung von MS Graph .NET in einem Projekt zu beginnen?

Um mit der Nutzung von MS Graph .NET zu beginnen, müssen Sie das Microsoft.Graph-Paket über den NuGet-Paket-Manager installieren und eine Authentifizierung mittels Client-Anmeldeinformationen einrichten, um mit Microsoft 365-Diensten zu interagieren.

Wie kann ein Entwickler eine E-Mail mit MS Graph .NET senden?

Ein Entwickler kann eine E-Mail mit MS Graph .NET senden, indem er ein `Message`-Objekt mit dem gewünschten Inhalt und den Empfängerinformationen erstellt und dann die `SendMail`-Methode des `GraphServiceClient` verwendet.

Kann MS Graph .NET Kalendereinträge in einem Microsoft 365-Konto verwalten?

Ja, MS Graph .NET ermöglicht das Verwalten von Kalendereinträgen, indem `Event`-Objekte erstellt und Methoden wie `Me.Events.Request().AddAsync(event)` genutzt werden, um Ereignisse zum Kalender eines Benutzers hinzuzufügen.

Wie konvertieren Sie ein OneDrive-Dokument in einer .NET-Anwendung in ein PDF?

Um ein OneDrive-Dokument in ein PDF zu konvertieren, können Sie MS Graph .NET verwenden, um das Dokument abzurufen, und dann IronPDF einsetzen, um den Dokumentinhalt in ein PDF-Format zu konvertieren.

Welche Überlegungen sollten beim Integrieren von MS Graph .NET mit IronPDF angestellt werden?

Beim Integrieren von MS Graph .NET mit IronPDF sollten Sie robuste Authentifizierung, Fehlerbehandlung und die Kompatibilität verschiedener Dateiformate berücksichtigen, um eine nahtlose Konvertierung und Datenverwaltung zu gewährleisten.

Was sind einige praktische Anwendungen der gemeinsamen Nutzung von MS Graph .NET und IronPDF?

Die gemeinsame Nutzung von MS Graph .NET und IronPDF ermöglicht Anwendungen wie die Erstellung von PDF-Berichten, das Archivieren von E-Mails als PDFs oder das Erstellen standardisierter Geschäftsdokumente aus Microsoft 365-Daten.

Wie kann MS Graph .NET die Effizienz von .NET-Anwendungen verbessern?

MS Graph .NET verbessert die Effizienz, indem es einen rationalisierten Zugriff auf Microsoft 365-Dienste bietet und Entwicklern ermöglicht, Daten mit minimalem Code abzurufen, zu verwalten und zu manipulieren, was die Produktivität und Fähigkeit der Anwendung erhöht.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der führend in der C# PDF-Technologie ist. Als ursprünglicher Entwickler der Iron Software-Kerncodebasis hat er die Produktarchitektur des Unternehmens seit seiner Gründung gestaltet und zusammen mit CEO Cameron Rimington in ein Unternehmen ...

Weiterlesen