Freigeben über


Empfangen aller Nachrichten für Bots und Agents

Hinweis

RsC-Berechtigungen werden zwar für vorhandene Bot-Apps unterstützt, es wird jedoch empfohlen, zu Agents zu migrieren. Erstellen Sie für neue Apps Agents von Grund auf neu, und verwenden Sie RSC-Berechtigungen, um die Erfahrung zu verbessern.

Der Empfang aller Nachrichten , auch ohne @mentions, verbessert Bots und Agents durch die Bereitstellung eines besseren Kontexts, ermöglicht proaktive Antworten, personalisierte Interaktionen und eine schnellere Problemlösung. Das Ressourcenspezifische Zustimmungsberechtigungsmodell (RSC) von Microsoft Teams Graph-APIs verbessert die Leistung und stellt zeitnahe Antworten sicher.

Entwickler können das Botverhalten an bestimmte Anforderungen anpassen, indem sie Berechtigungen im App-Manifest angeben. Konversationsbesitzer können einem Bot zustimmen, alle Nachrichten in Kanälen und Chats ohne @mentionszu empfangen. Die Zustimmung kann während des Installations- oder Upgradevorgangs der App erteilt werden. Weitere Informationen finden Sie unter RSC-Berechtigungen.

Hinweis: Bots, die alle Konversationsnachrichten mit RSC empfangen, werden in Government Community Cloud (GCC), GCC High, Department of Defense (DoD) und Teams unterstützt, die von 21Vianet-Umgebungen betrieben werden .

Bots ermöglichen, alle Kanal- oder Chatnachrichten zu empfangen

Die RSC-Berechtigungen werden auf Bots und Agents erweitert, und mit Benutzerzustimmung und App-Installation werden diese Berechtigungen:

  • Zulassen, dass eine angegebene Graphanwendung alle Nachrichten in Kanälen bzw. Chats abrufen kann.

  • Ermöglichen Sie es einem im App-Manifest definierten Bot, alle Konversationsnachrichten zu empfangen, ohne sich @mentioned in relevanten Kontexten zu befinden, wobei die folgenden Berechtigungen gelten:

    • ChannelMessage.Read.Group
    • ChatMessage.Read.Chat

So ermöglichen Sie Bots oder Agents den Empfang aller Nachrichten:

Filtern nach Erwähnung Nachrichten

Sie können es dem Entwickler ermöglichen, Botnachrichten zu filtern und nur die Nachrichten zu verarbeiten, @mention die die Bots oder der Agent haben. Dies kann aus verschiedenen Gründen nützlich sein:

  • Sicherstellen der kontextbezogenen Relevanz: Nachrichten, die an den Bot weitergeleitet werden, haben wahrscheinlich eine höhere Relevanz für die Benutzer des Bots oder des Agents. Es hilft der App, genau zu reagieren und sinnvolle Antworten zu erhalten.
  • Bessere Botleistung: Das Filtern von Nachrichten kann den Bedarf an unnötiger Verarbeitung für den Bot oder den Agent reduzieren. Die Verarbeitung kontextbezogener irrelevanter Nachrichten kann vermieden werden, um die Leistung des Bots zu verbessern. Es kann auch verhindern, dass der Bot, der Agent oder der Benutzer auf irrelevante Nachrichten reagiert oder unnötige Aktionen auslöst.
  • Verbessern der Benutzererfahrung: Benutzer interagieren eher mit dem Bot, wenn er nur antwortet, wenn er adressiert wird. Der Entwickler kann eine nahtlose und intuitive Benutzererfahrung schaffen.
  • Effiziente Nachrichtenverarbeitung: Das Filtern relevanter Nachrichten ermöglicht es dem Bot oder dem Agent, eine größere Menge an Unterhaltungen zu verarbeiten und sie nützlicher und besser zu machen.

Hier sehen Sie ein Beispiel für die Verwendung von RSC-Berechtigungen zum Filtern @mention von Nachrichten:

// When ChannelMessage.Read.Group or ChatMessage.Read.Chat RSC is in the app manifest, this method is called even when bot is not @mentioned.
// This code snippet allows the bot to ignore all messages that do not @mention the bot.
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
        // Ignore the message if bot was not mentioned. 
        // Remove this if block to process all messages received by the bot.
        if (!turnContext.Activity.GetMentions().Any(mention => mention.Mentioned.Id.Equals(turnContext.Activity.Recipient.Id, StringComparison.OrdinalIgnoreCase)))
        {
            return;
        }
        // Sends an activity to the sender of the incoming activity.
        await turnContext.SendActivityAsync(MessageFactory.Text("Using RSC the bot can receive messages across channels or chats in team without being @mentioned."));
}

Entwickler können effizientere und benutzerfreundlichere Konversationsschnittstellen in den Bots und Agents erstellen.

Verwenden von Graph-REST-APIs für den Zugriff auf alle Nachrichten

Dienste, die Zugriff auf alle Teams-Nachrichtendaten benötigen, müssen die Graph-REST-APIs verwenden, um auf archivierte Daten in Kanälen und Chats zuzugreifen. Der Bot oder der Agent muss die ChannelMessage.Read.Group RSC-Berechtigungen und ChatMessage.Read.Chat entsprechend verwenden, um eine ansprechende Erfahrung für Benutzer zu erstellen und zu verbessern.

Weitere Informationen zum Aktualisieren von RSC-Berechtigungen in der App-Beschreibung finden Sie unter Aktualisieren der App-Beschreibung für Bots oder Agents.

Verwenden von RSC-Berechtigungen zum Verbessern von KI-Agents in Teams

Sie können RSC-Berechtigungen in KI-Agents verwenden, um Zugriff auf bestimmte Ressourcen wie E-Mail, Kalender oder Dateien anzufordern. Anstelle von umfassenden Berechtigungen ermöglicht RSC spezifische Berechtigungen für den Kontext einer Ressource auf einer granularen Ebene. Sie müssen die Ressourcen bestimmen, auf die Ihr KI-Agent in Microsoft Teams oder Microsoft 365 Zugreifen muss. Verwenden Sie RSC-Berechtigungen für Folgendes:

  • Lesen von Nachrichten in Teams-Kanälen.
  • Greifen Sie auf die Details oder Daten des Benutzers zu.
  • Zugriff auf freigegebene Dokumente.

Verwenden Sie beispielsweise RSC-Berechtigungen für einen KI-Agent, um Kanalinhalte zu verwalten.

Anwendungsfall Wie die RSC-Berechtigung im KI-Agent helfen kann
Kontext: Ein Teamleiter benötigt sein Team, um an einem bevorstehenden Projekt zusammenzuarbeiten.

Ziel: Um sicherzustellen, dass nur relevante und genehmigte Inhalte in der Kanalunterhaltung enthalten sind.
Lösung: Verwenden Sie einen Agent zum Verwalten von Konversationsinhalten. Der Agent kann die folgenden RSC-Berechtigungen verwenden:
ChannelMessage.Read.All
ChannelMessage.Delete.All
ChannelMessage.Send

Erwartetes Ergebnis:
• Filtern irrelevanter Inhalte
• Rechtzeitige Aktualisierungen erhalten
• Unterhaltung ist organisiert

Aktualisieren des App-Manifests

Damit Ihr Bot oder Agent alle Konversationsnachrichten empfangen kann, geben Sie die relevanten RSC-Berechtigungszeichenfolgen in der authorization.permissions.resourceSpecific -Eigenschaft Ihres App-Manifests an. Weitere Informationen finden Sie unter App-Manifestschema.

Hier sehen Sie ein Beispiel für ein App-Manifest, gefolgt von einem Beispielcodeausschnitt:

Screenshot: Änderungen, die im App-Manifest vorgenommen werden sollen

In diesem Codebeispiel:

  • webApplicationInfo.id: Ihre Microsoft Entra-App-ID. Die App-ID kann mit Ihrer Bot-ID identisch sein.
  • webApplicationInfo.resource: Beliebige Zeichenfolge. Das Ressourcenfeld verfügt in RSC über keinen Vorgang. Sie muss jedoch mit einem Wert hinzugefügt werden, um eine Fehlerantwort zu vermeiden.
  • authorization.permissions.resourceSpecific: RSC-Berechtigungen für Ihre App mit oder beidem ChannelMessage.Read.Group und ChatMessage.Read.Chat angegeben. Weitere Informationen finden Sie unter ressourcenspezifische Berechtigungen.
Wählen Sie aus, um einen Beispielcodeausschnitt für App-Manifestversion 1.12 oder höher anzuzeigen.

Der folgende Codeausschnitt enthält ein Beispiel dafür, wie Sie RSC-Berechtigungen im App-Manifest deklarieren können:

{
    "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.21/MicrosoftTeams.schema.json",
    "manifestVersion": "1.21",
    "version": "1.0.0",
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "packageName": "com.contoso.rscechobot",
    "developer": {
        "name": "Contoso",
        "websiteUrl": "https://www.contoso.com",
        "privacyUrl": "https://www.contoso.com/privacy",
        "termsOfUseUrl": "https://www.contoso.com/tos"
    },
    "icons": {
        "color": "color.png",
        "outline": "outline.png"
    },
    "name": {
        "short": "RscEchoBot",
        "full": "Echo bot with RSC configured for all conversation messages"
    },
    "description": {
        "short": "Echo bot with RSC configured for all channel and chat messages",
        "full": "Echo bot configured with all channel and chat messages RSC permission in manifest"
    },
    "accentColor": "#FFFFFF",
    "staticTabs": [
        {
            "entityId": "conversations",
            "scopes": [
                "personal"
            ]
        },
        {
            "entityId": "about",
            "scopes": [
                "personal"
            ]
        }
    ],
    "webApplicationInfo": {
        "id": "07338883-af76-47b3-86e4-2603c50be638",
        "resource": "https://AnyString"
    },
    "authorization": {
        "permissions": {
            "resourceSpecific": [
                {
                    "type": "Application",
                    "name": "ChannelMessage.Read.Group"
                },
                {
                    "type": "Application",
                    "name": "ChatMessage.Read.Chat"
                }
            ]
        }
    },
    "bots": [
        {
            "botId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "scopes": [
                "personal",
                "team",
                "groupchat"
            ],
            "supportsFiles": false,
            "isNotificationOnly": false
        }
    ],
    "permissions": [
        "identity",
        "messageTeamMembers"
    ],
    "validDomains": []
}

Hochladen einer benutzerdefinierten App in einer Unterhaltung

Nachdem Sie das App-Manifest mit den erforderlichen RSC-Berechtigungen aktualisiert haben, führen Sie die folgenden Schritte aus, um Ihre benutzerdefinierte App in Teams hochzuladen.

Die folgenden Schritte führen Sie zum Hochladen und Überprüfen eines Bots, der alle Kanalnachrichten in einem Team empfängt, ohne zu sein @mentioned:

  1. Wählen Sie ein Team aus, oder erstellen Sie es.

  2. Wählen Sie im linken Bereich ●●● aus. Das Dropdownmenü wird angezeigt.

  3. Wählen Sie im Dropdownmenü Team verwalten aus.

    Screenshot: Option

  4. Wählen Sie Apps aus. Es werden mehrere Apps angezeigt.

  5. Wählen Sie in der unteren rechten Ecke Benutzerdefinierte App hochladen aus.

    Screenshot: Option

  6. Klicken Sie auf Öffnen.

    Screenshot: Dialogfeld

  7. Wählen Sie im Popupfenster mit den App-Details die Option Hinzufügen aus, um die App ihrem ausgewählten Team hinzuzufügen.

    Screenshot: Schaltfläche

  8. Wählen Sie einen Kanal aus, und geben Sie eine Nachricht in den Kanal für Ihre App ein.

    Der Bot oder Agent empfängt die Nachricht, ohne zu sein @mentioned.

    Screenshot: Bot empfängt Nachrichten in einem Kanal.

Aktualisieren der App-Beschreibung für Bots oder Agents

Um die Microsoft Teams Store-Genehmigung zu bestehen, muss die App-Beschreibung enthalten, wie der Bot oder die Agent-App die gelesenen Daten verwendet:

  • und ChannelMessage.Read.GroupChatMessage.Read.Chat müssen nicht von Bots verwendet werden, um große Mengen von Kundendaten zu extrahieren.

  • Die Möglichkeit, dass Bots alle Nachrichten in Chats mit ChatMessage.Read.Chat empfangen können, ist erst nach einer Neuinstallation oder Neuinstallation in einem Chat aktiviert:

    • Wenn Sie über eine App verfügen, die für ChatMessage.Read.Chat Graph-Szenarien verwendet, testen Sie die App anhand der Schritte unter Hochladen einer benutzerdefinierten App in einer Unterhaltung , und ändern Sie die App, bevor das Feature allgemein verfügbar ist.
    • Wenn Sie nicht möchten, dass Ihre App alle Chatnachrichten empfängt, verwenden Sie den Codeausschnitt nur zum Filtern der @mention Nachrichten.
    • Wenn keine Aktion ausgeführt wird, empfängt Ihr Bot alle Nachrichten nach der neu installierten Installation.
  • Beachten Sie, dass ChatMessage.Read.Chat der App das Lesen von Chatnachrichten ermöglicht, ohne dass ein Benutzer angemeldet ist. Weitere Informationen finden Sie unter RSC-Berechtigungen.

  • Die App liest nur die Informationen, die für ihre Kernfunktionen erforderlich sind.

  • Die App verwendet Daten, die für die spezifischen geschäftsspezifischen Anforderungen relevant sind, um Produktivität und Zusammenarbeit zu steigern.

Weitere Informationen finden Sie unter App-Beschreibungen.

Codeausschnitte

Der folgende Code enthält ein Beispiel für die RSC-Berechtigungen:


// Handle when a message is addressed to the bot.
// When rsc is enabled the method will be called even when bot is addressed without being @mentioned.
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
        // Sends an activity to the sender of the incoming activity.
         await turnContext.SendActivityAsync(MessageFactory.Text("Using RSC the bot can receive messages across channels or chats in a team without being @mentioned."));
}

Codebeispiel

Beispielname Beschreibung .NET Node.js Python App-Manifest
Kanalnachrichten mit RSC-Berechtigungen Diese Beispiel-App zeigt, wie ein Bot alle Kanalnachrichten mit RSC empfangen kann, ohne zu sein @mentioned. View View View Anzeigen

Siehe auch