Freigeben über


Definieren von Aktionsbefehlen für Nachrichtenerweiterungen

Bevor Sie den Aktionsbefehl erstellen, müssen Sie die folgenden Faktoren festlegen:

  1. Von wo kann der Aktionsbefehl ausgelöst werden?
  2. Wie wird das Dialogfeld (in TeamsJS v1.x als Aufgabenmodul bezeichnet) erstellt?
  3. Wird die letzte Nachricht oder Karte von einem Bot an den Kanal gesendet, oder wird die Nachricht oder Karte in den Bereich zum Verfassen einer Nachricht eingefügt, damit der Benutzer ihn übermitteln kann?

Auswählen von Speicherorten zum Aufrufen von Aktionsbefehlen

Zuerst müssen Sie den Speicherort festlegen, von dem aus der Aktionsbefehl aufgerufen werden muss. Wenn Sie die context Eigenschaft in Ihrem App-Manifest angeben (zuvor teams-App-Manifest genannt), kann Ihr Befehl von einem oder mehreren der folgenden Speicherorte aufgerufen werden:

  • Bereich zum Verfassen von Nachrichten: die Schaltflächen am unteren Rand des Bereichs zum Verfassen von Nachrichten.

    Befehlskontext = compose

  • Befehlsfeld: Mit / im Befehlsfeld. Beispiel: /your-app-name. Wenn Sie das klassische Teams verwenden, wird der Aktionsbefehl von @mentioning im Befehlsfeld aufgerufen. Beispiel: @your-app-name.

    Befehlskontext = commandBox

    Hinweis

    Wenn eine Nachrichtenerweiterung über das Befehlsfeld aufgerufen wird, können Sie nicht mit einer Botnachricht antworten, die direkt in die Konversation eingefügt wurde.

  • Nachricht: direkt aus einer vorhandenen Nachricht über das ... Überlaufmenü einer Nachricht.

    Befehlskontext = message

    Hinweis

    • Der anfängliche Aufruf des Bots enthält ein JSON-Objekt, das die Nachricht enthält, aus der er aufgerufen wurde. Sie können die Nachricht vor dem Anzeigen eines Dialogs verarbeiten.

    • Wenn der Benutzer aus den Auslassungspunkten ... auswählt, wird ein Überlaufmenü angezeigt. Nachrichtenaktionen für Apps, die von Ihnen für Ihre Organisation oder Apps von Drittanbietern erstellt wurden, werden jedoch standardmäßig nicht angezeigt. Nachdem der Benutzer Weitere Aktionen ausgewählt hat, kann er die Nachrichtenaktionen anzeigen und die erforderliche Option auswählen. Die entsprechende Meldungsaktion wird im Überlaufmenü angezeigt. Im Überlaufmenü werden die drei letzten Nachrichtenaktionen angezeigt. Sie können die anzuzeigende Meldungsaktion nicht anheften.

In der folgenden Abbildung werden die Speicherorte angezeigt, von denen der Aktionsbefehl aufgerufen wird:

Speicherorte zum Aufrufen von Aktionsbefehlen

Auswählen der Erstellung des Dialogfelds

Zusätzlich zur Auswahl, wo der Befehl aufgerufen werden kann, müssen Sie auch auswählen, wie das Formular im Dialogfeld für Ihre Benutzer aufgefüllt werden soll. Sie haben die folgenden drei Optionen zum Erstellen des Formulars, das im Dialogfeld gerendert wird:

  • Statische Parameterliste: Dies ist die einfachste Methode. Sie können eine Liste von Parametern in Ihrem App-Manifest definieren, die der Teams-Client rendert, aber in diesem Fall nicht die Formatierung steuern.
  • Adaptive Karte: Sie können eine adaptive Karte verwenden, die eine bessere Kontrolle über die Benutzeroberfläche bietet, Sie aber weiterhin auf die verfügbaren Steuerelemente und Formatierungsoptionen beschränkt.
  • Eingebettete Webansicht: Sie können eine benutzerdefinierte Webansicht in das Dialogfeld einbetten, um eine vollständige Kontrolle über die Benutzeroberfläche und steuerelemente zu erhalten.

Wenn Sie das Dialogfeld mit einer statischen Liste von Parametern erstellen und wenn der Benutzer den Dialog übermittelt, wird die Nachrichtenerweiterung aufgerufen. Wenn Sie eine eingebettete Webansicht oder eine adaptive Karte verwenden, muss Ihre Nachrichtenerweiterung ein anfängliches Aufrufereignis vom Benutzer behandeln, das Dialogfeld erstellen und es an den Client zurückgeben.

Auswählen, wie die endgültige Nachricht gesendet wird

In den meisten Fällen führt der Aktionsbefehl dazu, dass eine Karte in das Feld zum Verfassen von Nachrichten eingefügt wird. Der Benutzer kann sie in den Kanal oder Chat senden. In diesem Fall stammt die Nachricht vom Benutzer, und der Bot kann die Karte nicht weiter bearbeiten oder aktualisieren.

Wenn die Nachrichtenerweiterung über das Feld zum Verfassen oder direkt aus einer Nachricht aufgerufen wird, kann Ihr Webdienst die endgültige Antwort direkt in den Kanal oder Chat einfügen. In diesem Fall stammt die adaptive Karte vom Bot, der Bot aktualisiert sie und antwortet bei Bedarf auf den Unterhaltungsthread. Sie müssen das bot -Objekt dem App-Manifest hinzufügen, indem Sie dieselbe ID verwenden und die entsprechenden Bereiche definieren.

Befehl "Aktion erstellen" mithilfe des Entwicklerportals

Sie können einen Aktionsbefehl mithilfe des Teams-Toolkits und des Entwicklerportals für Teams erstellen.

Führen Sie die folgenden Schritte aus, um mithilfe des Teams Toolkits eine aktionsbasierte Nachrichtenerweiterung zu erstellen:

  1. Öffnen Sie Visual Studio Code.
  2. Wählen Sie im linken Bereich Teams Toolkit aus.
  3. Wählen Sie Neue App erstellenaus.
  4. Wählen Sie Nachrichtenerweiterungaus.
  5. Wählen Sie Aus Eingaben sammeln und Daten verarbeiten aus.
  6. Wählen Sie eine Programmiersprache aus.
  7. Wählen Sie Standardordneraus.
  8. Geben Sie den Namen Ihrer App ein, und wählen Sie EINGABETASTEaus.

Teams Toolkit erstellt ein Gerüst für Ihr Projekt und erstellt eine Erweiterung für Aktionsnachrichten.

Codeausschnitte

Der folgende Code enthält ein Beispiel für aktionsbasierte Nachrichtenerweiterungen:

protected override Task<MessagingExtensionActionResponse> OnTeamsMessagingExtensionFetchTaskAsync(ITurnContext<IInvokeActivity> turnContext, MessagingExtensionAction action, CancellationToken cancellationToken)
        {
            // Handle different actions using switch.
            switch (action.CommandId)
            {
                case "HTML":
                    return new MessagingExtensionActionResponse
                    {
                        Task = new TaskModuleContinueResponse
                        {
                            Value = new TaskModuleTaskInfo
                            {
                                Height = 200,
                                Width = 400,
                                Title = "Task Module HTML Page",
                                Url = baseUrl + "/htmlpage.html",
                            },
                        },
                    };
                default:
                    string memberName = "";
                    var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken);
                    memberName = member.Name;
                    return new MessagingExtensionActionResponse
                    {
                        Task = new TaskModuleContinueResponse
                        {
                            Value = new TaskModuleTaskInfo
                            {
                                Card = <<AdaptiveAction card json>>,
                                Height = 200,
                                Width = 400,
                                Title = $"Welcome {memberName}",
                            },
                        },
                    };
            }
        }

Codebeispiel

Beispielname Beschreibung .NET Node.js Manifest
Teams-Nachrichtenerweiterungen – Aktion In diesem Beispiel wird gezeigt, wie Sie Aktionsbefehle definieren, einen Dialog erstellen und auf die Aktion "Dialog übermitteln" reagieren. View View View
Vorschau der Aktion "Nachrichtenerweiterung" In diesem Beispiel wird gezeigt, wie Sie die Aktionsvorschau in Messagingerweiterungen mit Bot Framework v4 verwenden. View View View

Schrittweise Anleitung

Befolgen Sie die Schritt-für-Schritt-Anleitung , um eine aktionsbasierte Nachrichtenerweiterung für Teams zu erstellen.

Nächster Schritt

Wenn Sie eine adaptive Karte oder eine eingebettete Webansicht ohne Objekt taskInfo verwenden, besteht der nächste Schritt darin:

Wenn Sie die Parameter oder eine eingebettete Webansicht mit einem taskInfo -Objekt verwenden, besteht der nächste Schritt darin:

Siehe auch