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.
Az új robotépítéshez fontolja meg a Microsoft Copilot Studio használatát, és olvassa el a megfelelő copilot-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 le kell állítania a fordulót, vagy az Összekötő 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);
}
}