Share via


Senden und Empfangen von SMS

GILT FÜR: SDK v4

Die primäre Art und Weise, wie Ihr Bot mit Benutzern kommuniziert und seinerseits Kommunikation empfängt, erfolgt über Nachrichtenaktivitäten. Einige Nachrichten können nur reinen Text enthalten, während andere umfangreichere Inhalte wie Karten oder Anhänge enthalten können. Der turn-Handler Ihres Bots empfängt Nachrichten vom Benutzer, und Sie können Antworten an den Benutzer von dort aus senden. Das Turn-Kontextobjekt stellt Methoden bereit, mit denen Nachrichten zurück an den Benutzer gesendet werden können. In diesem Artikel wird beschrieben, wie Sie einfache Textnachrichtenen senden.

Markdown wird für die meisten Textfelder unterstützt, die Unterstützung hängt jedoch ggf. vom jeweiligen Kanal ab.

Für einen aktiven Bot, der Nachrichten sendet und empfängt, befolgen Sie die Schnellstarts oben im Inhaltsverzeichnis, oder lesen Sie den Artikel zur Funktionsweise von Bots, der auch auf Beispiele verweist, die Sie selbst ausführen können.

Hinweis

Die JavaScript-, C#- und Python-SDKs für Bot Framework werden weiterhin unterstützt, das Java-SDK wird jedoch eingestellt und der langfristige Support endet im November 2023.

Bestehende Bots, die mit dem Java SDK erstellt wurden, werden weiterhin funktionieren.

Wenn Sie einen neuen Bot erstellen möchten, sollten Sie den Einsatz von Power Virtual Agents in Betracht ziehen und sich über die Auswahl der richtigen Chatbot-Lösung informieren.

Weitere Informationen finden Sie unter Die Zukunft des Bot-Buildings.

Eine Textnachricht senden

Um eine Textnachricht zu senden, geben Sie die Zeichenfolge an, die Sie als Aktivität senden möchten:

Verwenden Sie in den Aktivitäts-Handlern des Bots die SendActivityAsync-Methode des Turn-Kontextobjekts, um eine einzelne Nachrichtenantwort zu senden. Sie können auch die SendActivitiesAsync-Methode des Objekts verwenden, um mehrere Antworten gleichzeitig zu senden.

await turnContext.SendActivityAsync($"Welcome!");

Empfangen einer Textnachricht

Verwenden Sie zum Bearbeiten einer SMS die text-Eigenschaft des activity-Objekts.

Verwenden Sie in den Aktivitätshandlern des Bots den folgenden Code, um eine Nachricht zu empfangen.

var responseMessage = turnContext.Activity.Text;

Senden eines Eingabeindikators

Benutzer erwarten eine zeitnahe Antwort auf ihre Nachrichten. Wenn Ihr Bot eine langdauernde Aufgabe ausführt (z. B. Aufrufen eines Servers oder Ausführen einer Abfrage), ohne dem Benutzer einen Hinweis zu geben, dass der Bot ihn gehört hat, könnte der Benutzer ungeduldig werden und weitere Nachrichten senden oder einfach davon ausgehen, dass der Bot fehlerhaft ist.

Bots für den Webchat- und den Direct Line-Kanal unterstützen das Senden eines Eingabeindikators, um dem Benutzer zu signalisieren, dass die Nachricht empfangen wurde und verarbeitet wird. Allerdings muss Ihr Bot den Vorgang innerhalb von 15 Sekunden abschließen, da der Connector-Dienst sonst ein Timeout verursacht. Für längere Prozesse lesen Sie mehr über das Senden proaktiver Nachrichten.

Im folgenden Beispiel wird das Senden eines Eingabeindikators gezeigt:

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    if (string.Equals(turnContext.Activity.Text, "wait", System.StringComparison.InvariantCultureIgnoreCase))
    {
        await turnContext.SendActivitiesAsync(
            new Activity[] {
                new Activity { Type = ActivityTypes.Typing },
                new Activity { Type = "delay", Value= 3000 },
                MessageFactory.Text("Finished typing", "Finished typing"),
            },
            cancellationToken);
    }
    else
    {
        var replyText = $"Echo: {turnContext.Activity.Text}. Say 'wait' to watch me type.";
        await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
    }
}

Zusätzliche Ressourcen

Nächste Schritte