Senden und Empfangen von SMSSend and receive text message

GILT FÜR: JaSDK v4 Nein SDK v3 APPLIES TO: yesSDK v4 no SDK v3

Die primäre Art und Weise, wie Ihr Bot mit Benutzern kommuniziert und seinerseits Kommunikation empfängt, erfolgt über Nachrichtenaktivitäten.The primary way your bot will communicate with users, and likewise receive communication, is through message activities. Einige Nachrichten bestehen einfach aus Nur-Text, während andere reichhaltigere Inhalte wie Karten oder Anlagen enthalten können.Some messages may simply consist of plain text, while others may contain richer content such as cards or attachments. Der turn-Handler Ihres Bots empfängt Nachrichten vom Benutzer, und Sie können Antworten an den Benutzer von dort aus senden.Your bot's turn handler receives messages from the user, and you can send responses to the user from there. Das turn-Kontextobjekt stellt Methoden zum Senden von Nachrichten zurück an den Benutzer bereit.The turn context object provides methods for sending messages back to the user. In diesem Artikel wird beschrieben, wie Sie einfache SMS senden.This article describes how to send simple text messages.

Markdown wird für die meisten Textfelder unterstützt, die Unterstützung hängt jedoch ggf. vom jeweiligen Kanal ab.Markdown is supported for most text fields, but support may vary by channel.

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 einfache Beispiele verweist, die Sie selbst ausführen können.For a running bot sending and receiving messages, follow the quickstarts at the top of the table of contents or check out the article on how bots work, which also links to simple samples available for you to run yourself.

Senden einer TextnachrichtSend a text message

Um eine einfache Textnachricht zu senden, geben Sie die Zeichenfolge an, die Sie als Aktivität senden möchten:To send a simple text message, specify the string you want to send as the activity:

Verwenden Sie in den Aktivitätshandlern des Bots die SendActivityAsync-Methode des Turn-Kontextobjekts, um eine einzelne Nachrichtenantwort zu senden.In the bot's activity handlers, use the turn context object's SendActivityAsync method to send a single message response. Sie können auch die SendActivitiesAsync-Methode des Objekts verwenden, um mehrere Antworten gleichzeitig zu senden.You can also use the object's SendActivitiesAsync method to send multiple responses at once.

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

Empfangen einer TextnachrichtReceive a text message

Verwenden Sie zum Empfangen einer einfachen SMS die text-Eigenschaft des activity-Objekts.To receive a simple text message, use the text property of the activity object.

Verwenden Sie in den Aktivitätshandlern des Bots den folgenden Code, um eine Nachricht zu empfangen.In the bot's activity handlers, use the following code to receive a message.

var responseMessage = turnContext.Activity.Text;

Senden eines EingabeindikatorsSend a typing indicator

Benutzer erwarten eine zeitnahe Antwort auf ihre Nachrichten.Users expect a timely response to their messages. 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.If your bot performs some long-running task like calling a server or executing a query without giving the user some indication that the bot heard them, the user could get impatient and send additional messages or just assume the bot is broken.

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.Web Chat and Direct Line channel bots can support the sending of a typing indication to show the user that the message was received and is being processed. Beachten Sie, dass Ihr Bot den Turn innerhalb von 15 Sekunden enden lassen muss, da ansonsten ein Timeout für den Connector-Dienst auftritt.Be aware that your bot needs to let the turn end within 15 seconds or the Connector service will timeout. Informationen zum Senden proaktiver Nachrichten für längere Prozesse finden Sie hier.For longer processes read more about sending proactive messages.

Im folgenden Beispiel wird das Senden eines Eingabeindikators gezeigt:The following example demonstrates how to send a typing indication.

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 RessourcenAdditional resources

Nächste SchritteNext steps