Senden Sie eine persönliche Willkommensnachricht

Nachdem Sie Ihren Bot proaktiv für einen Benutzer mit Microsoft Graph installiert haben, können Sie ihm eine persönliche 1:1-Willkommensnachricht senden. Dies umfasst das Abrufen der Konversation chatId für den Benutzer und das anschließende Senden der Nachricht mithilfe des Teams SDK.

Abrufen der chatId einer Unterhaltung

Wenn Ihre App für den Benutzer installiert wird, empfängt der Bot eine Installationsaktivität . Verwenden Sie den Handler (C#) oder install.add das OnInstall Ereignis (Node.js/Python) im Teams SDK, um die conversationId erforderlichen Nachrichten zum Senden der proaktiven Nachricht zu erfassen.

Microsoft Graph-Seitenreferenz:Chat abrufen

  1. Sie müssen über die {teamsAppInstallationId} Ihrer App verfügen. Wenn sie nicht vorhanden ist, verwenden Sie Folgendes:

    HTTP GET-Anforderung:

    GET https://graph.microsoft.com/v1.0/users/{user-id}/teamwork/installedApps?$expand=teamsApp&$filter=teamsApp/id eq '{teamsAppId}'
    

    Die id-Eigenschaft der Antwort ist die teamsAppInstallationId.

  2. Führen Sie die folgende Anforderung aus, um die chatId abzurufen:

    HTTP GET-Anforderung (Berechtigung – ):TeamsAppInstallation.ReadWriteSelfForUser.All

    GET https://graph.microsoft.com/v1.0/users/{user-id}/teamwork/installedApps/{teamsAppInstallationId}/chat
    

    Die id-Eigenschaft der Antwort ist die chatId.

    Sie können die chatId auch mit der folgenden Anforderung abrufen, sie erfordert jedoch die umfassendere Chat.Read.All-Berechtigung:

    HTTP GET-Anforderung (Berechtigung – ):Chat.Read.All

    GET https://graph.microsoft.com/v1.0/users/{user-id}/chats?$filter=installedApps/any(a:a/teamsApp/id eq '{teamsAppId}')
    

Senden proaktiver Nachrichten

Ihr Bot kann proaktive Nachrichten senden, nachdem er für einen Benutzer oder ein Team hinzugefügt wurde und alle Benutzerinformationen erhalten hat.

Codeausschnitte

Der folgende Code stellt ein Beispiel für das Senden proaktiver Nachrichten dar:

using Microsoft.Teams.Api; 
using Microsoft.Teams.Apps; 
// ...

// Store conversation IDs (e.g., during install event) 
var conversationStorage = new Dictionary<string, string>(); 
app.OnInstall(async context => 
{ 
    var userId = context.Activity.From.AadObjectId; 
    var conversationId = context.Activity.Conversation.Id; 
    conversationStorage[userId] = conversationId; 
    await context.Send("Hi! I will send you proactive notifications."); 
}); 

// Send proactive message from anywhere 
public static async Task SendProactiveNotification(string userId) 
{ 
    var conversationId = conversationStorage.GetValueOrDefault(userId); 
    if (conversationId is null) return; 
    await app.Send(conversationId, "Proactive hello."); 
} 

Siehe auch