Megosztás a következőn keresztül:


Szöveges üzenetek küldése és fogadása

A KÖVETKEZŐKRE VONATKOZIK: SDK v4

A robot elsődleges kommunikációja a felhasználókkal, valamint a kommunikáció fogadása az üzenettevékenységeken keresztül történik. Egyes üzenetek csak egyszerű szöveget tartalmazhatnak, míg mások gazdagabb tartalmakat, például kártyákat vagy mellékleteket tartalmazhatnak. A robot kezelője üzeneteket fogad a felhasználótól, és onnan is küldhet válaszokat a felhasználónak. A turn context objektum metódusokat biztosít az üzenetek felhasználónak való visszaküldéséhez. Ez a cikk azt ismerteti, hogyan küldhet egyszerű szöveges üzeneteket.

A Markdown a legtöbb szövegmező esetében támogatott, de a támogatás csatornánként eltérő lehet.

Ha egy futó robot üzeneteket küld és fogad, kövesse a tartalomjegyzék tetején található rövid útmutatókat, vagy tekintse meg a robotok működéséről szóló cikket, amely a saját futtatásához elérhető mintákra mutató hivatkozásokat is tartalmaz.

Feljegyzés

A Bot Framework JavaScript, C# és Python SDK-k továbbra is támogatottak lesznek, a Java SDK-t azonban 2023 novemberében végső hosszú távú támogatással kivonják.

A Java SDK-val létrehozott meglévő robotok továbbra is működni fognak.

Új robotépítéshez fontolja meg a Power Virtual Agents használatát, és olvassa el a megfelelő csevegőrobot-megoldás kiválasztását.

További információ: A robotépítés jövője.

Szöveges üzenet küldése

Szöveges üzenet küldéséhez adja meg a tevékenységként elküldeni kívánt sztringet:

A robot tevékenységkezelőiben a turn context objektum metódusával SendActivityAsync küldjön egyetlen üzenetválaszt. Az objektum metódusával SendActivitiesAsync egyszerre több választ is küldhet.

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

Szöveges üzenet fogadása

Szöveges üzenet kezeléséhez használja a tevékenységobjektum szöveges tulajdonságát.

A robot tevékenységkezelőiben az alábbi kód használatával fogadjon üzenetet.

var responseMessage = turnContext.Activity.Text;

Gépelésjelző küldése

A felhasználók időben válaszolnak az üzeneteikre. Ha a robot olyan hosszú ideig futó feladatot hajt végre, mint a kiszolgáló hívása vagy a lekérdezés végrehajtása anélkül, hogy a felhasználónak jelzést adna arról, hogy a robot hallotta őket, a felhasználó türelmetlen lehet, és további üzeneteket küldhet, vagy csak feltételezheti, hogy a robot meghibásodott.

webchat és a Direct Line csatornarobotjai támogatják a gépelés jelzésének küldését, amely megmutatja a felhasználónak az üzenet fogadását és feldolgozását. A robotnak azonban 15 másodpercen belül véget kell vetnie a fordulónak, különben a Csatlakozás or szolgáltatás időtúllépést fog végrehajtani. A hosszabb folyamatokról további információ a proaktív üzenetek küldéséről.

Az alábbi példa bemutatja, hogyan küldhet be gépelési jelzést.

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

További erőforrások

Következő lépések