Freigeben über


BotFrameworkAdapter class

Warnung

Diese API ist nun veraltet.

Use CloudAdapter instead.

Extends

BotAdapter

Konstruktoren

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

Erstellt eine neue Instanz der BotFrameworkAdapter Klasse.

Eigenschaften

isStreamingConnectionOpen

Wird in Streamingkontexten verwendet, um zu überprüfen, ob die Streamingverbindung noch geöffnet ist, damit der Bot Aktivitäten sendet.

TokenApiClientCredentialsKey

Geerbte Eigenschaften

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

Methoden

continueConversation(Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit.

continueConversation(Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit.

createConnectorClient(string)

Erstellt einen Connectorclient.

createConnectorClientWithIdentity(string, ClaimsIdentity)

Erstellen Sie einen ConnectorClient mit einer ClaimsIdentity.Create a ConnectorClient with a ClaimsIdentity.

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

Erstellen Sie einen ConnectorClient mit einer ClaimsIdentity und einer expliziten Zielgruppe.

createConversation(Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

Erstellt asynchron eine Unterhaltung mit einem Benutzer in einem Kanal und startet sie.

createConversation(Partial<ConversationReference>, Partial<ConversationParameters>, (context: TurnContext) => Promise<void>)

Erstellt asynchron eine Unterhaltung mit einem Benutzer in einem Kanal und startet sie.

deleteActivity(TurnContext, Partial<ConversationReference>)

Löscht asynchron eine vorhandene Aktivität. Diese Schnittstelle unterstützt das Framework und soll nicht direkt für Ihren Code aufgerufen werden. Verwenden Sie TurnContext.deleteActivity, um eine Aktivität aus Ihrem Botcode zu löschen.

deleteConversationMember(TurnContext, string)

Entfernt asynchron ein Mitglied aus der aktuellen Unterhaltung.

emulateOAuthCards(TurnContext | string, boolean)

Sendet asynchron eine emulierte OAuth-Karte für einen Kanal. Diese Methode unterstützt das Framework und soll nicht direkt für Ihren Code aufgerufen werden.

exchangeToken(TurnContext, string, string, TokenExchangeRequest, CoreAppCredentials)

Führt asynchron einen Tokenaustauschvorgang aus, z. B. für einmaliges Anmelden.

getAadTokens(TurnContext, string, string[])

Meldet den Benutzer asynchron vom Tokenserver ab.

getAadTokens(TurnContext, string, string[], CoreAppCredentials)
getActivityMembers(TurnContext, string)

Listet asynchron die Mitglieder einer bestimmten Aktivität auf.

getConversationMembers(TurnContext)

Listet asynchron die Mitglieder der aktuellen Unterhaltung auf.

getConversations(TurnContext | string, string)

Ruft für den angegebenen Kanal asynchron eine Seite der Unterhaltungen ab, an denen dieser Bot teilgenommen hat.

getSignInLink(TurnContext, string, AppCredentials, string, string)

Ruft asynchron einen Anmeldelink vom Tokenserver ab, der als Teil einer SigninCard-gesendet werden kann.

getSignInLink(TurnContext, string, CoreAppCredentials, string, string)
getSignInResource(TurnContext, string, string, string, CoreAppCredentials)

Rufen Sie asynchron die unformatierte Anmelderessource ab, die für die Anmeldung an den Benutzer gesendet werden soll.

getTokenStatus(TurnContext, string, string)

Ruft asynchron den Tokenstatus für jede konfigurierte Verbindung für den angegebenen Benutzer ab.

getTokenStatus(TurnContext, string, string, CoreAppCredentials)
getUserToken(TurnContext, string, string)

Versucht asynchron, das Token für einen Benutzer abzurufen, der sich in einem Anmeldeablauf befindet.

getUserToken(TurnContext, string, string, CoreAppCredentials)
process(Request, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<void>)

Behandeln Sie eine Websocketverbindung, indem Sie eine Logikfunktion auf jede Streaminganforderung anwenden.

process(Request, Response, (context: TurnContext) => Promise<void>)

Verarbeiten einer Webanforderung durch Anwenden einer Logikfunktion.

processActivity(WebRequest, WebResponse, (context: TurnContext) => Promise<any>)

Erstellt asynchron einen Turnkontext und führt die Middlewarepipeline für eine eingehende Aktivität aus.

processActivityDirect(Activity, (context: TurnContext) => Promise<any>)

Erstellt asynchron einen Turnkontext und führt die Middlewarepipeline für eine eingehende Aktivität aus.

processRequest(IReceiveRequest)

Überprüft die Gültigkeit der Anforderung und versucht, sie dem richtigen virtuellen Endpunkt zuzuordnen, generiert und gibt ggf. eine Antwort zurück.

sendActivities(TurnContext, Partial<Activity>[])

Sendet asynchron eine Reihe ausgehender Aktivitäten an einen Kanalserver. Diese Methode unterstützt das Framework und soll nicht direkt für Ihren Code aufgerufen werden. Verwenden Sie die sendActivity oder sendActivities Methode des Turnkontexts aus Ihrem Botcode.

signOutUser(TurnContext, string, string)

Meldet den Benutzer asynchron vom Tokenserver ab.

signOutUser(TurnContext, string, string, CoreAppCredentials)
updateActivity(TurnContext, Partial<Activity>)

Ersetzt asynchron eine vorherige Aktivität durch eine aktualisierte Version. Diese Schnittstelle unterstützt das Framework und soll nicht direkt für Ihren Code aufgerufen werden. Verwenden Sie TurnContext.updateActivity, um eine Aktivität aus Ihrem Botcode zu aktualisieren.

useNamedPipe((context: TurnContext) => Promise<any>, string, number, () => void)

Verbindet den Handler mit einem Named Pipe-Server und beginnt mit der Überwachung eingehender Anforderungen.

useWebSocket(WebRequest, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<any>)

Verarbeiten Sie die anfängliche Anforderung, um eine langlebige Verbindung über einen Streamingserver herzustellen.

Geerbte Methoden

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit.

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit.

continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit.

createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)

Erstellt eine Unterhaltung im angegebenen Kanal.

use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

Fügt Middleware zur Pipeline des Adapters hinzu.

Details zum Konstruktor

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

Erstellt eine neue Instanz der BotFrameworkAdapter Klasse.

new BotFrameworkAdapter(settings?: Partial<BotFrameworkAdapterSettings>)

Parameter

settings

Partial<BotFrameworkAdapterSettings>

Wahlfrei. Die Einstellungen, die für diese Adapterinstanz verwendet werden sollen.

Hinweise

Wenn der parameter settingschannelService oder openIdMetadata Werte nicht enthält, überprüft der Konstruktor die Umgebungsvariablen des Prozesses auf diese Werte. Diese Werte können festgelegt werden, wenn ein Bot in Azure bereitgestellt wird und wenn dies erforderlich ist, damit der Bot in der globalen Cloud oder in einer nationalen Cloud ordnungsgemäß funktioniert.

Die BotFrameworkAdapterSettings Klasse definiert die verfügbaren Adaptereinstellungen.

Details zur Eigenschaft

isStreamingConnectionOpen

Wird in Streamingkontexten verwendet, um zu überprüfen, ob die Streamingverbindung noch geöffnet ist, damit der Bot Aktivitäten sendet.

boolean isStreamingConnectionOpen

Eigenschaftswert

boolean

True, wenn die Streamingverbindung geöffnet ist, andernfalls false.

TokenApiClientCredentialsKey

TokenApiClientCredentialsKey: symbol

Eigenschaftswert

symbol

Geerbte Eigenschaftsdetails

BotIdentityKey

BotIdentityKey: symbol

Eigenschaftswert

symbol

von BotAdapter.BotIdentityKey geerbt

ConnectorClientKey

ConnectorClientKey: symbol

Eigenschaftswert

symbol

von BotAdapter.ConnectorClientKey geerbt

OAuthScopeKey

OAuthScopeKey: symbol

Eigenschaftswert

symbol

von BotAdapter.OAuthScopeKey geerbt

onTurnError

onTurnError: (context: TurnContext, error: Error) => Promise<void>

Eigenschaftswert

(context: TurnContext, error: Error) => Promise<void>

von BotAdapter.onTurnError geerbt

Details zur Methode

continueConversation(Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit.

function continueConversation(reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parameter

reference

Partial<ConversationReference>

Ein Verweis auf die Unterhaltung, um fortzufahren.

logic

(context: TurnContext) => Promise<void>

Die asynchrone Methode, die aufgerufen werden soll, nachdem die Adapter-Middleware ausgeführt wird.

Gibt zurück

Promise<void>

Hinweise

Dies wird häufig als proaktive Benachrichtigungbezeichnet, der Bot kann proaktiv eine Nachricht an eine Unterhaltung oder einen Benutzer senden, ohne auf eine eingehende Nachricht zu warten. Beispielsweise kann ein Bot diese Methode verwenden, um Benachrichtigungen oder Coupons an einen Benutzer zu senden.

So senden Sie eine proaktive Nachricht:

  1. Speichern Sie eine Kopie einer ConversationReference- aus einer eingehenden Aktivität. Sie können z. B. den Unterhaltungsverweis in einer Datenbank speichern.
  2. Rufen Sie diese Methode auf, um die Unterhaltung zu einem späteren Zeitpunkt fortzusetzen. Verwenden Sie den gespeicherten Verweis, um auf die Unterhaltung zuzugreifen.
  3. Bei Erfolg generiert der Adapter ein TurnContext--Objekt und ruft den logic Funktionshandler auf. Verwenden Sie die logic-Funktion, um die proaktive Nachricht zu senden.

Um den Verweis aus allen eingehenden Aktivitäten in der Unterhaltung zu kopieren, verwenden Sie die TurnContext.getConversationReference-Methode.

Diese Methode ähnelt der processActivity--Methode. Der Adapter erstellt eine TurnContext- und leitet ihn durch seine Middleware weiter, bevor der logic-Handler aufgerufen wird. Die erstellte Aktivität verfügt über einen Typ von "event" und einen Namen "continueConversation".

Zum Beispiel:

server.post('/api/notifyUser', async (req, res) => {
   // Lookup previously saved conversation reference.
   const reference = await findReference(req.body.refId);

   // Proactively notify the user.
   if (reference) {
      await adapter.continueConversation(reference, async (context) => {
         await context.sendActivity(req.body.message);
      });
      res.send(200);
   } else {
      res.send(404);
   }
});

continueConversation(Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit.

function continueConversation(reference: Partial<ConversationReference>, oAuthScope: string, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parameter

reference

Partial<ConversationReference>

(xref:botframework-schema. ConversationReference) der Unterhaltung, die fortgesetzt werden soll.

oAuthScope

string

Der beabsichtigte Empfänger aller gesendeten Aktivitäten oder der Funktion, um die Unterhaltung fortzusetzen.

logic

(context: TurnContext) => Promise<void>

Wahlfrei. Die asynchrone Methode, die aufgerufen werden soll, nachdem die Adapter-Middleware ausgeführt wird.

Gibt zurück

Promise<void>

createConnectorClient(string)

Erstellt einen Connectorclient.

function createConnectorClient(serviceUrl: string): ConnectorClient

Parameter

serviceUrl

string

Die Dienst-URL des Clients.

Gibt zurück

ConnectorClient

Die ConnectorClient Instanz.

Hinweise

Überschreiben Sie dies in einer abgeleiteten Klasse, um einen Simulierten Connectorclient für Komponententests zu erstellen.

createConnectorClientWithIdentity(string, ClaimsIdentity)

Erstellen Sie einen ConnectorClient mit einer ClaimsIdentity.Create a ConnectorClient with a ClaimsIdentity.

function createConnectorClientWithIdentity(serviceUrl: string, identity: ClaimsIdentity): Promise<ConnectorClient>

Parameter

serviceUrl

string

Die Dienst-URL des Clients.

identity

ClaimsIdentity

ClaimsIdentity

Gibt zurück

Promise<ConnectorClient>

Hinweise

Wenn die ClaimsIdentity die Ansprüche für eine Skills-Anforderung enthält, erstellen Sie einen ConnectorClient für die Verwendung mit Skills. Leitet die richtige Zielgruppe von "ClaimsIdentity" oder der Anmeldeinformationeneigenschaft der Instanz ab.

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

Erstellen Sie einen ConnectorClient mit einer ClaimsIdentity und einer expliziten Zielgruppe.

function createConnectorClientWithIdentity(serviceUrl: string, identity: ClaimsIdentity, audience: string): Promise<ConnectorClient>

Parameter

serviceUrl

string

Die Dienst-URL des Clients.

identity

ClaimsIdentity

ClaimsIdentity

audience

string

Der Empfänger der ConnectorClient-Nachrichten. Normalerweise wird der Bot Framework-Kanaldienst oder die AppId eines anderen Bots verwendet.

Gibt zurück

Promise<ConnectorClient>

Hinweise

Wenn es sich bei der gekürzten Zielgruppe nicht um eine Zeichenfolge mit nicht null Länge handelt, wird die Zielgruppe von der ClaimsIdentity- oder der Anmeldeinformationseigenschaft der Instanz abgeleitet.

createConversation(Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

Erstellt asynchron eine Unterhaltung mit einem Benutzer in einem Kanal und startet sie.

function createConversation(reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parameter

reference

Partial<ConversationReference>

Ein Verweis für die zu erstellende Unterhaltung.

logic

(context: TurnContext) => Promise<void>

Die asynchrone Methode, die aufgerufen werden soll, nachdem die Adapter-Middleware ausgeführt wird.

Gibt zurück

Promise<void>

eine Zusage, die den asynchronen Vorgang darstellt

createConversation(Partial<ConversationReference>, Partial<ConversationParameters>, (context: TurnContext) => Promise<void>)

Erstellt asynchron eine Unterhaltung mit einem Benutzer in einem Kanal und startet sie.

function createConversation(reference: Partial<ConversationReference>, parameters: Partial<ConversationParameters>, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parameter

reference

Partial<ConversationReference>

Ein Verweis für die zu erstellende Unterhaltung.

parameters

Partial<ConversationParameters>

Parameter, die beim Erstellen der Unterhaltung verwendet werden

logic

(context: TurnContext) => Promise<void>

Die asynchrone Methode, die aufgerufen werden soll, nachdem die Adapter-Middleware ausgeführt wird.

Gibt zurück

Promise<void>

eine Zusage, die den asynchronen Vorgang darstellt

deleteActivity(TurnContext, Partial<ConversationReference>)

Löscht asynchron eine vorhandene Aktivität. Diese Schnittstelle unterstützt das Framework und soll nicht direkt für Ihren Code aufgerufen werden. Verwenden Sie TurnContext.deleteActivity, um eine Aktivität aus Ihrem Botcode zu löschen.

function deleteActivity(context: TurnContext, reference: Partial<ConversationReference>): Promise<void>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

reference

Partial<ConversationReference>

Unterhaltungsreferenzinformationen für die zu löschende Aktivität.

Gibt zurück

Promise<void>

Hinweise

Nicht alle Kanäle unterstützen diesen Vorgang. Bei Kanälen, die nicht funktionieren, löst dieser Aufruf möglicherweise eine Ausnahme aus.

deleteConversationMember(TurnContext, string)

Entfernt asynchron ein Mitglied aus der aktuellen Unterhaltung.

function deleteConversationMember(context: TurnContext, memberId: string): Promise<void>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

memberId

string

Die ID des Mitglieds, das aus der Unterhaltung entfernt werden soll.

Gibt zurück

Promise<void>

Hinweise

Entfernen Sie die Identitätsinformationen eines Mitglieds aus der Unterhaltung.

Nicht alle Kanäle unterstützen diesen Vorgang. Bei Kanälen, die nicht funktionieren, löst dieser Aufruf möglicherweise eine Ausnahme aus.

emulateOAuthCards(TurnContext | string, boolean)

Sendet asynchron eine emulierte OAuth-Karte für einen Kanal. Diese Methode unterstützt das Framework und soll nicht direkt für Ihren Code aufgerufen werden.

function emulateOAuthCards(contextOrServiceUrl: TurnContext | string, emulate: boolean): Promise<void>

Parameter

contextOrServiceUrl

TurnContext | string

Die URL des Emulators.

emulate

boolean

true, um eine emulierte OAuth-Karte an den Emulator zu senden; oder false, die Karte nicht zu senden.

Gibt zurück

Promise<void>

Hinweise

Beim Testen eines Bots im Bot Framework-Emulator kann diese Methode die OAuth-Karteninteraktion emulieren.

exchangeToken(TurnContext, string, string, TokenExchangeRequest, CoreAppCredentials)

Führt asynchron einen Tokenaustauschvorgang aus, z. B. für einmaliges Anmelden.

function exchangeToken(context: TurnContext, connectionName: string, userId: string, tokenExchangeRequest: TokenExchangeRequest, appCredentials?: CoreAppCredentials): Promise<TokenResponse>

Parameter

context

TurnContext

Kontext für die aktuelle Unterhaltungswende mit dem Benutzer.

connectionName

string

Name der zu verwendenden Authentifizierungsverbindung.

userId

string

Die Benutzer-ID, die dem Token zugeordnet wird.

tokenExchangeRequest

TokenExchangeRequest

Die Exchange-Anforderungsdetails, entweder ein Token, das ausgetauscht werden soll, oder ein URI zum Austausch.

appCredentials

CoreAppCredentials

Wahlfrei. Die CoreAppCredentials für OAuth.

Gibt zurück

Promise<TokenResponse>

getAadTokens(TurnContext, string, string[])

Meldet den Benutzer asynchron vom Tokenserver ab.

function getAadTokens(context: TurnContext, connectionName: string, resourceUrls: string[]): Promise<[key: string]: TokenResponse>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

connectionName

string

Der Name der zu verwendenden Authentifizierungsverbindung.

resourceUrls

string[]

Die Liste der Ressourcen-URLs, für die Token abgerufen werden sollen.

Gibt zurück

Promise<[key: string]: TokenResponse>

Eine Zuordnung der TokenResponse Objekte nach Ressourcen-URL.

getAadTokens(TurnContext, string, string[], CoreAppCredentials)

function getAadTokens(context: TurnContext, connectionName: string, resourceUrls: string[], oAuthAppCredentials?: CoreAppCredentials): Promise<[key: string]: TokenResponse>

Parameter

context

TurnContext

connectionName

string

resourceUrls

string[]

oAuthAppCredentials

CoreAppCredentials

Gibt zurück

Promise<[key: string]: TokenResponse>

getActivityMembers(TurnContext, string)

Listet asynchron die Mitglieder einer bestimmten Aktivität auf.

function getActivityMembers(context: TurnContext, activityId?: string): Promise<ChannelAccount[]>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

activityId

string

Wahlfrei. Die ID der Aktivität, von der die Mitglieder abgerufen werden sollen. Wenn nicht angegeben, wird die aktuelle Aktivitäts-ID verwendet.

Gibt zurück

Promise<ChannelAccount[]>

Ein Array von ChannelAccount Objekte für die Benutzer, die an einer bestimmten Aktivität beteiligt sind.

Hinweise

Gibt ein Array von ChannelAccount- -Objekten für die Benutzer zurück, die an einer bestimmten Aktivität beteiligt sind.

Dies unterscheidet sich von getConversationMembers darin, dass nur die Benutzer zurückgegeben werden, die direkt an der Aktivität beteiligt sind, nicht alle Mitglieder der Unterhaltung.

getConversationMembers(TurnContext)

Listet asynchron die Mitglieder der aktuellen Unterhaltung auf.

function getConversationMembers(context: TurnContext): Promise<ChannelAccount[]>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

Gibt zurück

Promise<ChannelAccount[]>

Ein Array von ChannelAccount Objekte für alle Benutzer, die derzeit an einer Unterhaltung beteiligt sind.

Hinweise

Gibt ein Array von ChannelAccount- -Objekten für alle Benutzer zurück, die derzeit an einer Unterhaltung beteiligt sind.

Dies unterscheidet sich von getActivityMembers darin, dass alle Mitglieder der Unterhaltung zurückgegeben werden, nicht nur diejenigen, die direkt an einer bestimmten Aktivität beteiligt sind.

getConversations(TurnContext | string, string)

Ruft für den angegebenen Kanal asynchron eine Seite der Unterhaltungen ab, an denen dieser Bot teilgenommen hat.

function getConversations(contextOrServiceUrl: TurnContext | string, continuationToken?: string): Promise<ConversationsResult>

Parameter

contextOrServiceUrl

TurnContext | string

Die URL des Kanalservers zum Abfragen oder eines TurnContext--Objekts aus einer Unterhaltung im Kanal.

continuationToken

string

Wahlfrei. Das Fortsetzungstoken von der vorherigen Seite der Ergebnisse. Lassen Sie diesen Parameter aus, oder verwenden Sie undefined, um die erste Seite der Ergebnisse abzurufen.

Gibt zurück

Promise<ConversationsResult>

Ein ConversationsResult--Objekt, das eine Seite mit Ergebnissen und ein Fortsetzungstoken enthält.

Hinweise

Die Unterhaltungen Eigenschaft des Rückgabewerts enthält eine Seite mit ConversationMembers-Objekten. Die -ID jedes Objekts ist die ID einer Unterhaltung, an der der Bot an diesem Kanal teilgenommen hat. Diese Methode kann außerhalb des Kontexts einer Unterhaltung aufgerufen werden, da nur die Dienst-URL und Anmeldeinformationen des Bots erforderlich sind.

Die Kanalbatches führen zu Seiten. Wenn das Ergebnis continuationToken--Eigenschaft nicht leer ist, gibt es weitere Seiten, die abgerufen werden sollen. Verwenden Sie das zurückgegebene Token, um die nächste Seite der Ergebnisse abzurufen. Wenn der parameter contextOrServiceUrl ein TurnContext-ist, wird die URL des Kanalservers aus contextOrServiceUrlabgerufen.Aktivität.serviceUrl.

Ruft asynchron einen Anmeldelink vom Tokenserver ab, der als Teil einer SigninCard-gesendet werden kann.

function getSignInLink(context: TurnContext, connectionName: string, oAuthAppCredentials?: AppCredentials, userId?: string, finalRedirect?: string): Promise<string>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

connectionName

string

Der Name der zu verwendenden Authentifizierungsverbindung.

oAuthAppCredentials

AppCredentials

AppCredentials für OAuth.

userId

string

Die Benutzer-ID, die dem Token zugeordnet wird.

finalRedirect

string

Die endgültige URL, zu der der OAuth-Fluss umgeleitet wird.

Gibt zurück

Promise<string>

function getSignInLink(context: TurnContext, connectionName: string, oAuthAppCredentials?: CoreAppCredentials, userId?: string, finalRedirect?: string): Promise<string>

Parameter

context

TurnContext

connectionName

string

oAuthAppCredentials

CoreAppCredentials

userId

string

finalRedirect

string

Gibt zurück

Promise<string>

getSignInResource(TurnContext, string, string, string, CoreAppCredentials)

Rufen Sie asynchron die unformatierte Anmelderessource ab, die für die Anmeldung an den Benutzer gesendet werden soll.

function getSignInResource(context: TurnContext, connectionName: string, userId?: string, finalRedirect?: string, appCredentials?: CoreAppCredentials): Promise<SignInUrlResponse>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

connectionName

string

Der Name der zu verwendenden Authentifizierungsverbindung.

userId

string

Die Benutzer-ID, die dem Token zugeordnet wird.

finalRedirect

string

Die endgültige URL, zu der der OAuth-Fluss umgeleitet wird.

appCredentials

CoreAppCredentials

Wahlfrei. Die CoreAppCredentials für OAuth.

Gibt zurück

Promise<SignInUrlResponse>

Das BotSignInGetSignInResourceResponse-Objekt.

getTokenStatus(TurnContext, string, string)

Ruft asynchron den Tokenstatus für jede konfigurierte Verbindung für den angegebenen Benutzer ab.

function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string): Promise<TokenStatus[]>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

userId

string

Wahlfrei. Falls vorhanden, ruft die ID des Benutzers den Tokenstatus ab. Andernfalls wird die ID des Benutzers verwendet, der die aktuelle Aktivität gesendet hat.

includeFilter

string

Wahlfrei. Eine durch Trennzeichen getrennte Liste der einzuschließden Verbindungen. Wenn vorhanden, beschränkt der includeFilter Parameter die von dieser Methode zurückgegebenen Token.

Gibt zurück

Promise<TokenStatus[]>

Die TokenStatus- abgerufenen Objekte.

getTokenStatus(TurnContext, string, string, CoreAppCredentials)

function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<TokenStatus[]>

Parameter

context

TurnContext

userId

string

includeFilter

string

oAuthAppCredentials

CoreAppCredentials

Gibt zurück

Promise<TokenStatus[]>

getUserToken(TurnContext, string, string)

Versucht asynchron, das Token für einen Benutzer abzurufen, der sich in einem Anmeldeablauf befindet.

function getUserToken(context: TurnContext, connectionName: string, magicCode?: string): Promise<TokenResponse>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

connectionName

string

Der Name der zu verwendenden Authentifizierungsverbindung.

magicCode

string

Wahlfrei. Der Überprüfungscode, den der Benutzer eingegeben hat.

Gibt zurück

Promise<TokenResponse>

Ein TokenResponse--Objekt, das das Benutzertoken enthält.

getUserToken(TurnContext, string, string, CoreAppCredentials)

function getUserToken(context: TurnContext, connectionName: string, magicCode?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<TokenResponse>

Parameter

context

TurnContext

connectionName

string

magicCode

string

oAuthAppCredentials

CoreAppCredentials

Gibt zurück

Promise<TokenResponse>

process(Request, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<void>)

Behandeln Sie eine Websocketverbindung, indem Sie eine Logikfunktion auf jede Streaminganforderung anwenden.

function process(req: Request, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parameter

req
Request

Ein eingehender HTTP-Anforderungs-

socket

INodeSocket

Das entsprechende INodeSocket-

head

INodeBuffer

Die entsprechende INodeBuffer-

logic

(context: TurnContext) => Promise<void>

Die anzuwendende Logikfunktion

Gibt zurück

Promise<void>

eine Zusage, die den asynchronen Vorgang darstellt.

process(Request, Response, (context: TurnContext) => Promise<void>)

Verarbeiten einer Webanforderung durch Anwenden einer Logikfunktion.

function process(req: Request, res: Response, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parameter

req
Request

Ein eingehender HTTP-Anforderungs-

res
Response

Die entsprechende HTTP--Antwort-

logic

(context: TurnContext) => Promise<void>

Die anzuwendende Logikfunktion

Gibt zurück

Promise<void>

eine Zusage, die den asynchronen Vorgang darstellt.

processActivity(WebRequest, WebResponse, (context: TurnContext) => Promise<any>)

Erstellt asynchron einen Turnkontext und führt die Middlewarepipeline für eine eingehende Aktivität aus.

function processActivity(req: WebRequest, res: WebResponse, logic: (context: TurnContext) => Promise<any>): Promise<void>

Parameter

req
WebRequest

Ein Express- oder Restify-Formatvorlagenanforderungsobjekt.

res
WebResponse

Ein Express- oder Restify-Formatvorlagen-Antwortobjekt.

logic

(context: TurnContext) => Promise<any>

Die Funktion, die am Ende der Middlewarepipeline aufgerufen werden soll.

Gibt zurück

Promise<void>

Hinweise

Dies ist die Hauptart, wie ein Bot eingehende Nachrichten empfängt und eine Wendung in der Unterhaltung definiert. Diese Methode:

  1. Analysiert und authentifiziert eine eingehende Anforderung.
    • Die Aktivität wird aus dem Textkörper der eingehenden Anforderung gelesen. Wenn die Aktivität nicht analysiert werden kann, wird ein Fehler zurückgegeben.
    • Die Identität des Absenders wird entweder als Emulator oder als gültiger Microsoft-Server authentifiziert, wobei die appId des Bots und appPasswordverwendet werden. Die Anforderung wird abgelehnt, wenn die Identität des Absenders nicht überprüft wird.
  2. Erstellt ein TurnContext- -Objekt für die empfangene Aktivität.
    • Dieses Objekt wird mit einem revocable proxyumbrochen.
    • Nach Abschluss dieser Methode wird der Proxy widerrufen.
  3. Sendet den Turnkontext über die Middlewarepipeline des Adapters.
  4. Sendet den Turnkontext an die logic-Funktion.
    • Der Bot kann zu diesem Zeitpunkt zusätzliches Routing oder eine zusätzliche Verarbeitung durchführen. Durch zurückgeben einer Zusage (oder Bereitstellen eines async-Handlers) wird der Adapter auf den Abschluss asynchroner Vorgänge warten.
    • Nach Abschluss der logic-Funktion wird die von der Middleware eingerichtete Zusagekette aufgelöst.

Trinkgeld

Wenn der Fehler TypeError: Cannot perform 'set' on a proxy that has been revoked in der Konsolenausgabe Ihres Bots angezeigt wird, liegt die wahrscheinliche Ursache darin, dass eine asynchrone Funktion verwendet wurde, ohne das schlüsselwort await zu verwenden. Stellen Sie sicher, dass alle asynchronen Funktionen await verwenden!

Middleware kann Kurzschluss. In diesem Fall wird nachfolgende Middleware und die logic-Funktion nicht aufgerufen; Allerdings werden alle Middleware vor diesem Punkt noch zum Abschluss ausgeführt. Weitere Informationen zur Middlewarepipeline finden Sie in den artikeln funktionsweise von Bots und Middleware Artikel. Verwenden Sie die des Adapters mit Methode, um dem Adapter Middleware hinzuzufügen.

Zum Beispiel:

server.post('/api/messages', (req, res) => {
   // Route received request to adapter for processing
   adapter.processActivity(req, res, async (context) => {
       // Process any messages received
       if (context.activity.type === ActivityTypes.Message) {
           await context.sendActivity(`Hello World`);
       }
   });
});

processActivityDirect(Activity, (context: TurnContext) => Promise<any>)

Erstellt asynchron einen Turnkontext und führt die Middlewarepipeline für eine eingehende Aktivität aus.

function processActivityDirect(activity: Activity, logic: (context: TurnContext) => Promise<any>): Promise<void>

Parameter

activity

Activity

Die zu verarbeitende Aktivität.

logic

(context: TurnContext) => Promise<any>

Die Funktion, die am Ende der Middlewarepipeline aufgerufen werden soll.

Gibt zurück

Promise<void>

Hinweise

Dies ist die Hauptart, wie ein Bot eingehende Nachrichten empfängt und eine Wendung in der Unterhaltung definiert. Diese Methode:

  1. Erstellt ein TurnContext- -Objekt für die empfangene Aktivität.
    • Dieses Objekt wird mit einem revocable proxyumbrochen.
    • Nach Abschluss dieser Methode wird der Proxy widerrufen.
  2. Sendet den Turnkontext über die Middlewarepipeline des Adapters.
  3. Sendet den Turnkontext an die logic-Funktion.
    • Der Bot kann zu diesem Zeitpunkt zusätzliches Routing oder eine zusätzliche Verarbeitung durchführen. Durch zurückgeben einer Zusage (oder Bereitstellen eines async-Handlers) wird der Adapter auf den Abschluss asynchroner Vorgänge warten.
    • Nach Abschluss der logic-Funktion wird die von der Middleware eingerichtete Zusagekette aufgelöst.

Middleware kann Kurzschluss. In diesem Fall wird nachfolgende Middleware und die logic-Funktion nicht aufgerufen; Allerdings werden alle Middleware vor diesem Punkt noch zum Abschluss ausgeführt. Weitere Informationen zur Middlewarepipeline finden Sie in den artikeln funktionsweise von Bots und Middleware Artikel. Verwenden Sie die des Adapters mit Methode, um dem Adapter Middleware hinzuzufügen.

processRequest(IReceiveRequest)

Überprüft die Gültigkeit der Anforderung und versucht, sie dem richtigen virtuellen Endpunkt zuzuordnen, generiert und gibt ggf. eine Antwort zurück.

function processRequest(request: IReceiveRequest): Promise<StreamingResponse>

Parameter

request

IReceiveRequest

Eine ReceiveRequest vom verbundenen Kanal.

Gibt zurück

Promise<StreamingResponse>

Eine vom BotAdapter erstellte Antwort, die an den Client gesendet werden soll, der die Anforderung stammte.

sendActivities(TurnContext, Partial<Activity>[])

Sendet asynchron eine Reihe ausgehender Aktivitäten an einen Kanalserver. Diese Methode unterstützt das Framework und soll nicht direkt für Ihren Code aufgerufen werden. Verwenden Sie die sendActivity oder sendActivities Methode des Turnkontexts aus Ihrem Botcode.

function sendActivities(context: TurnContext, activities: Partial<Activity>[]): Promise<ResourceResponse[]>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

activities

Partial<Activity>[]

Die zu sendenden Aktivitäten.

Gibt zurück

Promise<ResourceResponse[]>

Ein Array von ResourceResponse-

Hinweise

Die Aktivitäten werden nacheinander in der Reihenfolge gesendet, in der sie empfangen werden. Für jede gesendete Aktivität wird ein Antwortobjekt zurückgegeben. Für message Aktivitäten enthält dies die ID der zugestellten Nachricht.

signOutUser(TurnContext, string, string)

Meldet den Benutzer asynchron vom Tokenserver ab.

function signOutUser(context: TurnContext, connectionName?: string, userId?: string): Promise<void>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

connectionName

string

Der Name der zu verwendenden Authentifizierungsverbindung.

userId

string

Die ID des Benutzers, der abgemeldet werden soll.

Gibt zurück

Promise<void>

signOutUser(TurnContext, string, string, CoreAppCredentials)

function signOutUser(context: TurnContext, connectionName?: string, userId?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<void>

Parameter

context

TurnContext

connectionName

string

userId

string

oAuthAppCredentials

CoreAppCredentials

Gibt zurück

Promise<void>

updateActivity(TurnContext, Partial<Activity>)

Ersetzt asynchron eine vorherige Aktivität durch eine aktualisierte Version. Diese Schnittstelle unterstützt das Framework und soll nicht direkt für Ihren Code aufgerufen werden. Verwenden Sie TurnContext.updateActivity, um eine Aktivität aus Ihrem Botcode zu aktualisieren.

function updateActivity(context: TurnContext, activity: Partial<Activity>): Promise<ResourceResponse | void>

Parameter

context

TurnContext

Das Kontextobjekt für die Drehung.

activity

Partial<Activity>

Die aktualisierte Version der zu ersetzenden Aktivität.

Gibt zurück

Promise<ResourceResponse | void>

Ein Promise, der die ResourceResponse- für den Vorgang darstellt.

Hinweise

Nicht alle Kanäle unterstützen diesen Vorgang. Bei Kanälen, die nicht funktionieren, löst dieser Aufruf möglicherweise eine Ausnahme aus.

useNamedPipe((context: TurnContext) => Promise<any>, string, number, () => void)

Verbindet den Handler mit einem Named Pipe-Server und beginnt mit der Überwachung eingehender Anforderungen.

function useNamedPipe(logic: (context: TurnContext) => Promise<any>, pipeName?: string, retryCount?: number, onListen?: () => void): Promise<void>

Parameter

logic

(context: TurnContext) => Promise<any>

Die Logik, die eingehende Anforderungen verarbeitet.

pipeName

string

Der Name der benannten Pipe, die beim Erstellen des Servers verwendet werden soll.

retryCount

number

Anzahl der Versuche, eingehende und ausgehende Rohre zu binden

onListen

() => void

Optionaler Rückruf, der einmal ausgelöst wird, wenn der Server sowohl eingehende als auch ausgehende Pipe überwacht

Gibt zurück

Promise<void>

useWebSocket(WebRequest, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<any>)

Verarbeiten Sie die anfängliche Anforderung, um eine langlebige Verbindung über einen Streamingserver herzustellen.

function useWebSocket(req: WebRequest, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<any>): Promise<void>

Parameter

req
WebRequest

Die Verbindungsanforderung.

socket

INodeSocket

Die unformatierte Socketverbindung zwischen dem Bot (Server) und dem Kanal/Anrufer (Client).

head

INodeBuffer

Das erste Paket des aktualisierten Datenstroms.

logic

(context: TurnContext) => Promise<any>

Die Logik, die eingehende Streaminganforderungen für die Lebensdauer der WebSocket-Verbindung verarbeitet.

Gibt zurück

Promise<void>

Details zur geerbten Methode

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit.

function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parameter

claimsIdentity

ClaimsIdentity

Eine ClaimsIdentity- für die Unterhaltung.

reference

Partial<ConversationReference>

Eine teilweise ConversationReference, um die Unterhaltung fortzusetzen.

logic

(context: TurnContext) => Promise<void>

Die asynchrone Methode, die aufgerufen werden soll, nachdem die Adapter-Middleware ausgeführt wird.

Gibt zurück

Promise<void>

eine Zusage, die den asynchronen Vorgang darstellt

Von BotAdapter.continueConversationAsync geerbt

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit.

function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, audience: string, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parameter

claimsIdentity

ClaimsIdentity

Eine ClaimsIdentity- für die Unterhaltung.

reference

Partial<ConversationReference>

Eine teilweise ConversationReference, um die Unterhaltung fortzusetzen.

audience

string

Ein Wert, der den Empfänger der proaktiven Nachricht angibt.

logic

(context: TurnContext) => Promise<void>

Die asynchrone Methode, die aufgerufen werden soll, nachdem die Adapter-Middleware ausgeführt wird.

Gibt zurück

Promise<void>

eine Zusage, die den asynchronen Vorgang darstellt

Von BotAdapter.continueConversationAsync geerbt

continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit.

function continueConversationAsync(botAppId: string, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parameter

botAppId

string

Die Anwendungs-ID des Bots. Dieser Parameter wird in einem einzigen Mandanten ignoriert, die Adapter (Konsole, Test usw.) sind für den BotFrameworkAdapter wichtig, der multimandantenfähig ist.

reference

Partial<ConversationReference>

Eine teilweise ConversationReference, um die Unterhaltung fortzusetzen.

logic

(context: TurnContext) => Promise<void>

Die asynchrone Methode, die aufgerufen werden soll, nachdem die Adapter-Middleware ausgeführt wird.

Gibt zurück

Promise<void>

eine Zusage, die den asynchronen Vorgang darstellt

Von BotAdapter.continueConversationAsync geerbt

createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)

Erstellt eine Unterhaltung im angegebenen Kanal.

function createConversationAsync(_botAppId: string, _channelId: string, _serviceUrl: string, _audience: string, _conversationParameters: ConversationParameters, _logic: (context: TurnContext) => Promise<void>): Promise<void>

Parameter

_botAppId

string

Die Anwendungs-ID des Bots.

_channelId

string

Die ID für den Kanal.

_serviceUrl

string

Die ID für den Kanal.

_audience

string

Die Zielgruppe für den Connector.

_conversationParameters

ConversationParameters

Die Unterhaltungsinformationen, die zum Erstellen der Unterhaltung verwendet werden sollen

_logic

(context: TurnContext) => Promise<void>

Die Methode, die für die resultierende Bot-Turn aufgerufen werden soll.

Gibt zurück

Promise<void>

Eine Zusage, die den asynchronen Vorgang darstellt

Hinweise

Um eine Unterhaltung zu starten, muss Ihr Bot seine Kontoinformationen und die Kontoinformationen des Benutzers in diesem Kanal kennen. Die meisten _channels unterstützen nur das Initiieren einer direkten Unterhaltung (nicht gruppieren).

Der Adapter versucht, eine neue Unterhaltung im Kanal zu erstellen, und sendet dann eine conversationUpdate Aktivität über seine Middlewarepipeline an die Logikmethode.

Wenn die Unterhaltung mit den angegebenen Benutzern eingerichtet wird, enthält die ID der Aktivitätskonverstion die ID der neuen Unterhaltung.

von BotAdapter.createConversationAsync geerbt

use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

Fügt Middleware zur Pipeline des Adapters hinzu.

function use(middlewares: (context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]): this

Parameter

middlewares

(context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]

Die hinzuzufügenden Middleware- oder Middleware-Handler.

Gibt zurück

this

Das aktualisierte Adapterobjekt.

Hinweise

Middleware wird dem Adapter zur Initialisierungszeit hinzugefügt. Jeder Turn ruft die Middleware des Adapters in der Reihenfolge auf, in der Sie ihn hinzugefügt haben.

von BotAdapter.use geerbt