Sdílet prostřednictvím


Odesílání a příjem textových zpráv

PLATÍ PRO: SDK v4

Primární způsob, jakým robot bude komunikovat s uživateli a podobně přijímá komunikaci, je prostřednictvím aktivit zpráv . Některé zprávy můžou obsahovat jenom prostý text, zatímco jiné můžou obsahovat bohatší obsah, například karty nebo přílohy. Obslužná rutina otáčení robota přijímá zprávy od uživatele a od uživatele můžete odesílat odpovědi. Objekt kontextu otáčení poskytuje metody pro odesílání zpráv zpět uživateli. Tento článek popisuje, jak odesílat zprávy ve formátu prostého textu.

Markdown je podporovaný pro většinu textových polí, ale podpora se může lišit podle kanálu.

Pokud chcete, aby robot odesílal a přijímal zprávy, postupujte podle rychlých startů v horní části obsahu nebo si projděte článek o tom, jak roboti fungují, a odkazy na ukázky, které můžete spustit sami.

Poznámka:

Sady SDK služby Bot Framework JavaScript, C# a Python budou nadále podporovány, ale sada Java SDK se vyřazuje s konečnou dlouhodobou podporou končící v listopadu 2023.

Stávající roboti sestavení pomocí sady Java SDK budou i nadále fungovat.

Pro nové vytváření robotů zvažte použití Power Virtual Agents a přečtěte si o výběru správného řešení chatovacího robota.

Další informace najdete v tématu Budoucnost vytváření robotů.

Odeslat textovou zprávu

Pokud chcete odeslat textovou zprávu, zadejte řetězec, který chcete odeslat jako aktivitu:

V obslužných rutinách aktivit robota použijte metodu kontextového SendActivityAsync objektu turn k odeslání jedné odpovědi na zprávu. Můžete také použít metodu objektu SendActivitiesAsync k odeslání více odpovědí najednou.

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

Přijetí textové zprávy

Pokud chcete zpracovat textovou zprávu, použijte textovou vlastnost objektu aktivity .

V obslužných rutinách aktivit robota použijte následující kód k přijetí zprávy.

var responseMessage = turnContext.Activity.Text;

Odeslání indikátoru psaní

Uživatelé očekávají včasnou odpověď na své zprávy. Pokud robot provádí určitou dlouhou úlohu, jako je volání serveru nebo provádění dotazu, aniž by uživateli poskytl nějaké informace o tom, že ho robot zaslechl, mohl by dostat netrpělivý a odeslat další zprávy nebo jen předpokládat, že je robot poškozený.

Webový chat a roboti kanálu Direct Line můžou podporovat odesílání informací o psaní, aby uživateli ukázali, že zpráva byla přijata a zpracována. Robot ale musí nechat koncový bod do 15 sekund, jinak vyprší časový limit služby Připojení oru. V případě delších procesů si přečtěte další informace o odesílání proaktivních zpráv.

Následující příklad ukazuje, jak odeslat indikaci psaní.

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);
    }
}

Další materiály

Další kroky