TurnContext class
Stellt Kontext für eine Drehung eines Bots bereit.
Hinweise
Der Kontext stellt Informationen bereit, die zum Verarbeiten einer eingehenden Aktivität erforderlich sind. Das Kontextobjekt wird von einem BotAdapter- erstellt und für die Länge des Drehs beibehalten.
Konstruktoren
Turn |
Erstellt eine neue Instanz der TurnContext Klasse. |
Turn |
Erstellt eine neue Instanz der TurnContext Klasse. |
Eigenschaften
activity | Ruft die aktivität ab, die dieser Turn zugeordnet ist. |
adapter | Ruft den Botadapter ab, der dieses Kontextobjekt erstellt hat. |
buffered |
Liste der Aktivitäten, die gesendet werden sollen, wenn |
locale | Ruft das gebietsschema ab, das im turnState gespeichert ist. Legt das gebietsschema fest, das im turnState gespeichert ist. |
responded | Gibt an, ob der Bot auf den Benutzer geantwortet hat. Legt das Antwortkennzeichnung für den aktuellen Turnkontext fest. |
turn |
Ruft die für dieses Kontextobjekt registrierten Dienste ab. |
Methoden
apply |
Aktualisiert eine Aktivität mit den Übermittlungsinformationen aus einem vorhandenen Unterhaltungsverweis. |
delete |
Löscht asynchron eine zuvor gesendete Aktivität. |
get |
Kopiert Unterhaltungsreferenzinformationen aus einer Aktivität. |
get |
Ruft alle in einer Aktivität enthaltenen At-Mention-Entitäten ab. |
get |
Kopiert Unterhaltungsreferenzinformationen aus einer Ressourcenantwort für eine gesendete Aktivität. |
on |
Fügt einen Antworthandler für Löschaktivitätsvorgänge hinzu. |
on |
Fügt einen Antworthandler für Sendeaktivitätsvorgänge hinzu. |
on |
Fügt einen Antworthandler für Aktualisierungsaktivitätsvorgänge hinzu. |
remove |
Entfernt erwähnungen für eine bestimmte ID aus dem Text einer Aktivität und gibt den aktualisierten Text zurück. Verwenden Sie mit Vorsicht; diese Funktion ändert den Text der Aktivität Eigenschaft. |
remove |
Entfernt erwähnungen für den Empfänger der Aktivität aus dem Text einer Aktivität und gibt den aktualisierten Text zurück. Verwenden Sie mit Vorsicht; diese Funktion ändert den Text der Aktivität Eigenschaft. |
send |
Sendet asynchron eine Reihe von Aktivitäten an den Absender der eingehenden Aktivität. |
send |
Sendet asynchron eine Aktivität an den Absender der eingehenden Aktivität. |
send |
Sendet asynchron eine Aktivität an den Absender der eingehenden Aktivität. |
update |
Aktualisiert asynchron eine zuvor gesendete Aktivität. |
Details zum Konstruktor
TurnContext(BotAdapter, Partial<Activity>)
Erstellt eine neue Instanz der TurnContext Klasse.
new TurnContext(adapterOrContext: BotAdapter, request: Partial<Activity>)
Parameter
- adapterOrContext
- BotAdapter
Der Adapter, der den Kontext erstellt.
- request
-
Partial<Activity>
Die eingehende Aktivität für die Drehung.
TurnContext(TurnContext)
Erstellt eine neue Instanz der TurnContext Klasse.
new TurnContext(adapterOrContext: TurnContext)
Parameter
- adapterOrContext
- TurnContext
Der Adapter, der den Kontext erstellt.
Details zur Eigenschaft
activity
Ruft die aktivität ab, die dieser Turn zugeordnet ist.
Activity activity
Eigenschaftswert
Activity
Die aktivität, die dieser Drehung zugeordnet ist.
Hinweise
In diesem Beispiel wird gezeigt, wie sie die Benutzer aus der Aktivität gekürzt haben:
const utterance = (context.activity.text || '').trim();
adapter
Ruft den Botadapter ab, der dieses Kontextobjekt erstellt hat.
BotAdapter adapter
Eigenschaftswert
Der Botadapter, der dieses Kontextobjekt erstellt hat.
bufferedReplyActivities
Liste der Aktivitäten, die gesendet werden sollen, wenn context.activity.deliveryMode == 'expectReplies'
.
bufferedReplyActivities: Partial<Activity>[]
Eigenschaftswert
Partial<Activity>[]
locale
Ruft das gebietsschema ab, das im turnState gespeichert ist. Legt das gebietsschema fest, das im turnState gespeichert ist.
string | undefined locale
Eigenschaftswert
string | undefined
Das gebietsschema, das im turnState gespeichert ist.
responded
Gibt an, ob der Bot auf den Benutzer geantwortet hat. Legt das Antwortkennzeichnung für den aktuellen Turnkontext fest.
boolean responded
Eigenschaftswert
boolean
True, wenn mindestens eine Antwort für die aktuelle Drehung gesendet wurde; andernfalls "false".
Hinweise
"true", wenn mindestens eine Antwort für die aktuelle Drehung gesendet wurde; andernfalls "false". Verwenden Sie diese Methode, um zu ermitteln, ob Ihr Bot fallbacklogik nach einer anderen normalen Verarbeitung ausführen muss.
Ablaufverfolgungsaktivitäten legen dieses Kennzeichen nicht fest.
Zum Beispiel:
await routeActivity(context);
if (!context.responded) {
await context.sendActivity(`I'm sorry. I didn't understand.`);
}
turnState
Ruft die für dieses Kontextobjekt registrierten Dienste ab.
TurnContextStateCollection turnState
Eigenschaftswert
Die in diesem Kontextobjekt registrierten Dienste.
Hinweise
Middleware, andere Komponenten und Dienste verwenden diese in der Regel, um Informationen zwischenzuspeichern, die von einem Bot mehrmals während einer Drehung angefordert werden könnten. Sie können diesen Cache verwenden, um Informationen zwischen Komponenten Ihres Bots zu übergeben.
Zum Beispiel:
const cartKey = Symbol();
const cart = await loadUsersShoppingCart(context);
context.turnState.set(cartKey, cart);
Trinkgeld
Verwenden Sie beim Erstellen von Middleware oder einer Drittanbieterkomponente ein eindeutiges Symbol für Ihren Cacheschlüssel, um Zustandsbenennungskonflikte mit dem Bot oder anderen Middleware oder Komponenten zu vermeiden.
Details zur Methode
applyConversationReference(Partial<Activity>, Partial<ConversationReference>, boolean)
Aktualisiert eine Aktivität mit den Übermittlungsinformationen aus einem vorhandenen Unterhaltungsverweis.
static function applyConversationReference(activity: Partial<Activity>, reference: Partial<ConversationReference>, isIncoming?: boolean): Partial<Activity>
Parameter
- activity
-
Partial<Activity>
Die zu aktualisierende Aktivität.
- reference
-
Partial<ConversationReference>
Der Unterhaltungsverweis zum Kopieren von Übermittlungsinformationen aus.
- isIncoming
-
boolean
Wahlfrei.
true
, die Aktivität als eingehende Aktivität zu behandeln, wobei der Bot der Empfänger ist; andernfalls false
. Der Standardwert ist false
, und die Aktivität zeigt den Bot als Absender an.
Gibt zurück
Partial<Activity>
Diese Aktivität, aktualisiert mit den Übermittlungsinformationen.
Hinweise
Rufen Sie die getConversationReference Methode für eine eingehende Aktivität auf, um einen Unterhaltungsverweis abzurufen, den Sie dann verwenden können, um eine ausgehende Aktivität mit den richtigen Übermittlungsinformationen zu aktualisieren.
deleteActivity(string | Partial<ConversationReference>)
Löscht asynchron eine zuvor gesendete Aktivität.
function deleteActivity(idOrReference: string | Partial<ConversationReference>): Promise<void>
Parameter
- idOrReference
-
string | Partial<ConversationReference>
ID- oder Unterhaltungsreferenz für die zu löschende Aktivität.
Gibt zurück
Promise<void>
Eine Zusage, die den asynchronen Vorgang darstellt.
Hinweise
Wenn eine ID angegeben ist, wird der Unterhaltungsverweis für die aktuelle Anforderung verwendet, um die restlichen erforderlichen Informationen abzurufen.
Zum Beispiel:
const matched = /approve (.*)/i.exec(context.activity.text);
if (matched) {
const savedId = await approveExpenseReport(matched[1]);
await context.deleteActivity(savedId);
}
Siehe auch
getConversationReference(Partial<Activity>)
Kopiert Unterhaltungsreferenzinformationen aus einer Aktivität.
static function getConversationReference(activity: Partial<Activity>): Partial<ConversationReference>
Parameter
- activity
-
Partial<Activity>
Die Aktivität, aus der die Informationen abgerufen werden sollen.
Gibt zurück
Partial<ConversationReference>
Ein Unterhaltungsverweis für die Unterhaltung, die diese Aktivität enthält.
Hinweise
Sie können den Unterhaltungsverweis als JSON-Objekt speichern und später verwenden, um den Benutzer proaktiv zu benachrichtigen.
Zum Beispiel:
const reference = TurnContext.getConversationReference(context.request);
Siehe auch
getMentions(Partial<Activity>)
Ruft alle in einer Aktivität enthaltenen At-Mention-Entitäten ab.
static function getMentions(activity: Partial<Activity>): Mention[]
Parameter
- activity
-
Partial<Activity>
Die Aktivität.
Gibt zurück
Mention[]
Alle in einer Aktivität enthaltenen At-Mention-Entitäten.
Hinweise
Die Entitäten der Aktivität Eigenschaft enthält eine flache Liste von Metadatenobjekten, die zu dieser Aktivität gehören, und kann Erwähnung Entitäten enthalten. Diese Methode gibt alle solchen Entitäten für eine bestimmte Aktivität zurück.
Zum Beispiel:
const mentions = TurnContext.getMentions(turnContext.request);
getReplyConversationReference(Partial<Activity>, ResourceResponse)
Kopiert Unterhaltungsreferenzinformationen aus einer Ressourcenantwort für eine gesendete Aktivität.
static function getReplyConversationReference(activity: Partial<Activity>, reply: ResourceResponse): Partial<ConversationReference>
Parameter
- activity
-
Partial<Activity>
Die gesendete Aktivität.
- reply
-
ResourceResponse
Die Ressourcenantwort für die Aktivität, die von der methode sendActivity oder sendActivities zurückgegeben wird.
Gibt zurück
Partial<ConversationReference>
Eine ConversationReference, die gespeichert und später verwendet werden kann, um die Aktivität zu löschen oder zu aktualisieren.
Hinweise
Sie können den Unterhaltungsverweis als JSON-Objekt speichern und später verwenden, um die Nachricht zu aktualisieren oder zu löschen.
Zum Beispiel:
var reply = await context.sendActivity('Hi');
var reference = TurnContext.getReplyConversationReference(context.activity, reply);
Siehe auch
onDeleteActivity(DeleteActivityHandler)
Fügt einen Antworthandler für Löschaktivitätsvorgänge hinzu.
function onDeleteActivity(handler: DeleteActivityHandler): this
Parameter
- handler
- DeleteActivityHandler
Der Handler, der dem Kontextobjekt hinzugefügt werden soll.
Gibt zurück
this
Das aktualisierte Kontextobjekt.
Hinweise
Diese Methode gibt einen Verweis auf das Turnkontextobjekt zurück.
Wenn die deleteActivity-Methode aufgerufen wird, werden die registrierten Handler in der Reihenfolge aufgerufen, in der sie dem Kontextobjekt hinzugefügt wurden, bevor die Aktivität gelöscht wird.
In diesem Beispiel wird gezeigt, wie Sie auf Löschungen von Aktivitäten lauschen und diese protokollieren.
context.onDeleteActivity(async (ctx, reference, next) => {
// Delete activity
await next();
// Log delete
logDelete(activity);
});
onSendActivities(SendActivitiesHandler)
Fügt einen Antworthandler für Sendeaktivitätsvorgänge hinzu.
function onSendActivities(handler: SendActivitiesHandler): this
Parameter
- handler
- SendActivitiesHandler
Der Handler, der dem Kontextobjekt hinzugefügt werden soll.
Gibt zurück
this
Das aktualisierte Kontextobjekt.
Hinweise
Diese Methode gibt einen Verweis auf das Turnkontextobjekt zurück.
Wenn die sendActivity-- oder sendActivities--Methode aufgerufen wird, werden die registrierten Handler in der Reihenfolge aufgerufen, in der sie dem Kontextobjekt hinzugefügt wurden, bevor die Aktivitäten gesendet werden.
In diesem Beispiel wird gezeigt, wie ausgehende message
Aktivitäten überwacht und protokolliert werden.
context.onSendActivities(async (ctx, activities, next) => {
// Log activities before sending them.
activities.filter(a => a.type === 'message').forEach(a => logSend(a));
// Allow the send process to continue.
next();
});
onUpdateActivity(UpdateActivityHandler)
Fügt einen Antworthandler für Aktualisierungsaktivitätsvorgänge hinzu.
function onUpdateActivity(handler: UpdateActivityHandler): this
Parameter
- handler
- UpdateActivityHandler
Der Handler, der dem Kontextobjekt hinzugefügt werden soll.
Gibt zurück
this
Das aktualisierte Kontextobjekt.
Hinweise
Diese Methode gibt einen Verweis auf das Turnkontextobjekt zurück.
Wenn die updateActivity-Methode aufgerufen wird, werden die registrierten Handler in der Reihenfolge aufgerufen, in der sie dem Kontextobjekt hinzugefügt wurden, bevor die Aktivität aktualisiert wird.
In diesem Beispiel wird gezeigt, wie Sie auf Aktivitätsupdates lauschen und diese protokollieren.
context.onUpdateActivity(async (ctx, activity, next) => {
// Replace activity
await next();
// Log update
logUpdate(activity);
});
removeMentionText(Partial<Activity>, string)
Entfernt erwähnungen für eine bestimmte ID aus dem Text einer Aktivität und gibt den aktualisierten Text zurück. Verwenden Sie mit Vorsicht; diese Funktion ändert den Text der Aktivität Eigenschaft.
static function removeMentionText(activity: Partial<Activity>, id: string): string
Parameter
- activity
-
Partial<Activity>
Die Aktivität, aus der Erwähnungen entfernt werden sollen.
- id
-
string
Die ID des Benutzers oder Bots, für den Erwähnungen entfernt werden sollen.
Gibt zurück
string
Der Text der aktualisierten Aktivität.
Hinweise
Einige Kanäle, z. B. Microsoft Teams, fügen Dem Text einer Nachrichtenaktivität at Erwähnungen hinzu.
Verwenden Sie diese Hilfsmethode, um den Text der Aktivität Eigenschaft zu ändern. Es entfernt alle Erwähnungen für den angegebenen Bot oder die Benutzer-ID und gibt dann den aktualisierten Eigenschaftswert zurück.
Wenn Sie beispielsweise Erwähnungen von echoBot aus einer Aktivität entfernen, die den Text "@echoBot Hi Bot" enthält, wird der Aktivitätstext aktualisiert, und die Methode gibt "Hi Bot" zurück.
Das Format einer Erwähnung Entität ist kanalabhängig. Der Text der Erwähnung Eigenschaft sollte jedoch den genauen Text für den Benutzer enthalten, wie er im Aktivitätstext angezeigt wird.
Ob der Kanal beispielsweise "Benutzername" oder "@username" verwendet, befindet sich diese Zeichenfolge im Text der Aktivität, und diese Methode entfernt alle Vorkommen dieser Zeichenfolge aus dem Text.
Zum Beispiel:
const updatedText = TurnContext.removeMentionText(activity, activity.recipient.id);
Siehe auch
removeRecipientMention(Partial<Activity>)
Entfernt erwähnungen für den Empfänger der Aktivität aus dem Text einer Aktivität und gibt den aktualisierten Text zurück. Verwenden Sie mit Vorsicht; diese Funktion ändert den Text der Aktivität Eigenschaft.
static function removeRecipientMention(activity: Partial<Activity>): string
Parameter
- activity
-
Partial<Activity>
Die Aktivität, aus der Erwähnungen entfernt werden sollen.
Gibt zurück
string
Der Text der aktualisierten Aktivität.
Hinweise
Einige Kanäle, z. B. Microsoft Teams, fügen Details zur Erwähnung zum Text einer Nachrichtenaktivität hinzu.
Verwenden Sie diese Hilfsmethode, um den Text der Aktivität Eigenschaft zu ändern. Er entfernt alle Erwähnungen des Empfängers der Aktivität und gibt dann den aktualisierten Eigenschaftswert zurück.
Zum Beispiel:
const updatedText = TurnContext.removeRecipientMention(turnContext.request);
Siehe auch
sendActivities(Partial<Activity>[])
Sendet asynchron eine Reihe von Aktivitäten an den Absender der eingehenden Aktivität.
function sendActivities(activities: Partial<Activity>[]): Promise<ResourceResponse[]>
Parameter
- activities
-
Partial<Activity>[]
Die zu sendenden Aktivitäten.
Gibt zurück
Promise<ResourceResponse[]>
Eine Zusage mit einer ResourceResponse.
Hinweise
Wenn die Aktivitäten erfolgreich gesendet werden, führt dies zu einem Array von ResourceResponse- Objekten, die die IDs enthalten, die dem empfangenden Kanal den Aktivitäten zugewiesen wurden.
Bevor sie gesendet werden, werden die Übermittlungsinformationen jeder ausgehenden Aktivität basierend auf den Übermittlungsinformationen der eingehenden Aktivität aktualisiert.
Zum Beispiel:
await context.sendActivities([
{ type: 'typing' },
{ type: 'delay', value: 2000 },
{ type: 'message', text: 'Hello... How are you?' }
]);
Siehe auch
sendActivity(string | Partial<Activity>, string, string)
Sendet asynchron eine Aktivität an den Absender der eingehenden Aktivität.
function sendActivity(activityOrText: string | Partial<Activity>, speak?: string, inputHint?: string): Promise<ResourceResponse | undefined>
Parameter
- activityOrText
-
string | Partial<Activity>
Die zu sendende Aktivität oder der zu sendende Text.
- speak
-
string
Wahlfrei. Der Text, der von Ihrem Bot in einem sprachfähigen Kanal gesprochen werden soll.
- inputHint
-
string
Wahlfrei. Gibt an, ob Ihr Bot Benutzereingaben akzeptiert, erwartet oder ignoriert, nachdem die Nachricht an den Client übermittelt wurde. Einer von: "acceptingInput", "ignoringInput" oder "expectingInput". Der Standardwert ist "acceptingInput".
Gibt zurück
Promise<ResourceResponse | undefined>
Eine Zusage mit einer ResourceResponse.
Hinweise
Wenn die Aktivität erfolgreich gesendet wurde, führt dies zu einem ResourceResponse- Objekt, das die ID enthält, die der Empfangenden Kanal der Aktivität zugewiesen wurde.
In der Dokumentation des Kanals finden Sie Grenzwerte für den Inhalt des activityOrText- Parameters.
Um verschiedene Merkmale der Spracherkennung Ihres Bots zu steuern, z. B. Sprache, Rate, Lautstärke, Aussprache und Tonhöhe, geben Sie sprechen im SSML-Format (Speech Synthesis Markup Language) an.
Zum Beispiel:
await context.sendActivity(`Hello World`);
Siehe auch
sendTraceActivity(string, any, string, string)
Sendet asynchron eine Aktivität an den Absender der eingehenden Aktivität.
function sendTraceActivity(name: string, value?: any, valueType?: string, label?: string): Promise<ResourceResponse | undefined>
Parameter
- name
-
string
Die zu sendende Aktivität oder der zu sendende Text.
- value
-
any
Wahlfrei. Der Text, der von Ihrem Bot in einem sprachfähigen Kanal gesprochen werden soll.
- valueType
-
string
Wahlfrei. Gibt an, ob Ihr Bot Benutzer akzeptiert, erwartet oder ignoriert
- label
-
string
Wahlfrei. Gibt an, ob Ihr Bot Benutzer akzeptiert, erwartet oder ignoriert
Gibt zurück
Promise<ResourceResponse | undefined>
Eine Zusage mit einer ResourceResponse.
Hinweise
Erstellt und sendet eine Ablaufverfolgungsaktivität. Ablaufverfolgungsaktivitäten werden nur gesendet, wenn der Kanal der Emulator ist.
Zum Beispiel:
await context.sendTraceActivity(`The following exception was thrown ${msg}`);
Siehe auch
updateActivity(Partial<Activity>)
Aktualisiert asynchron eine zuvor gesendete Aktivität.
function updateActivity(activity: Partial<Activity>): Promise<ResourceResponse | void>
Parameter
- activity
-
Partial<Activity>
Der Ersatz für die ursprüngliche Aktivität.
Gibt zurück
Promise<ResourceResponse | void>
Eine Zusage mit einer ResourceResponse.
Hinweise
Die -ID der Ersetzungsaktivität gibt die Aktivität in der Unterhaltung an, die ersetzt werden soll.
Zum Beispiel:
const matched = /approve (.*)/i.exec(context.activity.text);
if (matched) {
const update = await approveExpenseReport(matched[1]);
await context.updateActivity(update);
}
Siehe auch