TestAdapter class
Testadapter, der für Komponententests verwendet wird. Dieser Adapter kann verwendet werden, um das Senden von Nachrichten vom Benutzer an den Bot zu simulieren.
- Extends
Hinweise
Im folgenden Beispiel wird der Testadapter eingerichtet und anschließend ein einfacher Test ausgeführt:
const { TestAdapter } = require('botbuilder');
const adapter = new TestAdapter(async (context) => {
await context.sendActivity(`Hello World`);
});
adapter.test(`hi`, `Hello World`)
.then(() => done());
Konstruktoren
Test |
Erstellt eine neue TestAdapter-Instanz. |
Eigenschaften
active |
Ruft die Warteschlange der Antworten vom Bot ab. |
conversation | Dient zum Abrufen oder Festlegen eines Verweises auf die aktuelle Unterhaltung. |
enable |
Ruft einen Wert ab, der angibt, ob Ablaufverfolgungsaktivitäten gesendet werden sollen. Legt einen Wert fest, der angibt, ob Ablaufverfolgungsaktivitäten gesendet werden sollen. |
locale | Ruft das Gebietsschema für die Unterhaltung ab oder legt dieses fest. |
on |
Dient zum Abrufen oder Festlegen eines Fehlerhandlers, der Ausnahmen in der Middleware oder Anwendung abfangen kann. Legt einen Fehlerhandler fest, der Ausnahmen in der Middleware oder Anwendung abfangen kann. |
template |
|
Geerbte Eigenschaften
Bot |
|
Connector |
|
OAuth |
Methoden
add |
Fügt ein gefälschtes austauschbares Token hinzu, damit es später ausgetauscht werden kann. |
add |
Fügt ein gefälschtes Benutzertoken hinzu, damit es später abgerufen werden kann. |
continue |
Die |
create |
Erstellen Sie eine ConversationReference.Create a ConversationReference. |
exchange |
Führt einen Tokenaustauschvorgang aus, z. B. für einmaliges Anmelden. |
get |
Meldet den Benutzer mit dem Tokenserver ab. |
get |
Dequeues und gibt die nächste Bot-Antwort aus der activeQueue zurück. |
get |
Ruft einen Signin-Link vom Tokenserver ab, der als Teil einer SigninCard gesendet werden kann. |
get |
Ruft eine Anmelderessource ab. |
get |
Ruft asynchron den Tokenstatus für jede konfigurierte Verbindung für den angegebenen Benutzer ab. Ruft in testAdapter Token ab, die zuvor über addUserToken hinzugefügt wurden. |
get |
Ruft das OAuth-Token für einen Benutzer ab, der sich in einem Anmeldeablauf befindet. |
make |
Erstellt eine Nachrichtenaktivität aus Text und dem aktuellen Unterhaltungskontext. |
process |
Empfängt eine Aktivität und führt sie über die Middlewarepipeline aus. |
send(string | Partial<Activity>) | Sendet etwas an den Bot. Dies gibt eine neue |
send |
Verarbeitet eine Nachrichtenaktivität von einem Benutzer. |
sign |
Meldet den Benutzer mit dem Tokenserver ab. |
test(string | Partial<Activity>, string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, string, number) | Senden Sie etwas an den Bot und erwartet, dass der Bot mit einer bestimmten Antwort zurückgegeben wird. |
test |
Testen Sie eine Liste der Aktivitäten. |
throw |
Fügt eine Anweisung zum Auslösen einer Ausnahme während exchange-Anforderungen hinzu. |
Geerbte Methoden
continue |
Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit. |
continue |
Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit. |
continue |
Setzt asynchron eine Unterhaltung mit einem Benutzer fort, möglicherweise nach einiger Zeit. |
create |
Erstellt eine Unterhaltung im angegebenen Kanal. |
use((context: Turn |
Fügt Middleware zur Pipeline des Adapters hinzu. |
Details zum Konstruktor
TestAdapter((context: TurnContext) => Promise<void> | ConversationReference, Partial<Activity>, boolean)
Erstellt eine neue TestAdapter-Instanz.
new TestAdapter(logicOrConversation?: (context: TurnContext) => Promise<void> | ConversationReference, template?: Partial<Activity>, sendTraceActivity?: boolean)
Parameter
- logicOrConversation
-
(context: TurnContext) => Promise<void> | ConversationReference
Die bots-Logik, die getestet wird.
- template
-
Partial<Activity>
(Optional) Aktivität, die Standardwerte enthält, die allen empfangenen Testnachrichten zugewiesen werden sollen.
- sendTraceActivity
-
boolean
Gibt an, ob der Adapter der Warteschlange alle vom Bot generierten Ablaufverfolgungsaktivitäten hinzufügen soll.
Details zur Eigenschaft
activeQueue
Ruft die Warteschlange der Antworten vom Bot ab.
activeQueue: Partial<Activity>[]
Eigenschaftswert
Partial<Activity>[]
conversation
Dient zum Abrufen oder Festlegen eines Verweises auf die aktuelle Unterhaltung.
conversation: ConversationReference
Eigenschaftswert
ConversationReference
enableTrace
Ruft einen Wert ab, der angibt, ob Ablaufverfolgungsaktivitäten gesendet werden sollen. Legt einen Wert fest, der angibt, ob Ablaufverfolgungsaktivitäten gesendet werden sollen.
boolean enableTrace
Eigenschaftswert
boolean
Ein Wert, der angibt, ob Ablaufverfolgungsaktivitäten gesendet werden sollen.
locale
Ruft das Gebietsschema für die Unterhaltung ab oder legt dieses fest.
locale: string
Eigenschaftswert
string
onTurnError
Dient zum Abrufen oder Festlegen eines Fehlerhandlers, der Ausnahmen in der Middleware oder Anwendung abfangen kann. Legt einen Fehlerhandler fest, der Ausnahmen in der Middleware oder Anwendung abfangen kann.
(context: TurnContext, error: Error) => Promise<void> onTurnError
Eigenschaftswert
(context: TurnContext, error: Error) => Promise<void>
Eine Zusage, die den asynchronen Vorgang darstellt.
Hinweise
Der Fehlerhandler wird mit folgenden Parametern aufgerufen:
Name | Art | Beschreibung |
---|---|---|
context |
TurnContext- | Das Kontextobjekt für die Drehung. |
error |
Error |
Der Node.js Fehler ausgelöst. |
template
Activity
Vorlage, die mit allen Aktivitäten zusammengeführt wird, die an die zu test befindliche Logik gesendet werden.
template: Partial<Activity>
Eigenschaftswert
Partial<Activity>
Geerbte Eigenschaftsdetails
BotIdentityKey
ConnectorClientKey
OAuthScopeKey
Details zur Methode
addExchangeableToken(string, string, string, string, string)
Fügt ein gefälschtes austauschbares Token hinzu, damit es später ausgetauscht werden kann.
function addExchangeableToken(connectionName: string, channelId: string, userId: string, exchangeableItem: string, token: string)
Parameter
- connectionName
-
string
Name der zu verwendenden Authentifizierungsverbindung.
- channelId
-
string
Kanal-ID.
- userId
-
string
Benutzer-ID.
- exchangeableItem
-
string
Austauschbares Token oder Ressourcen-URI.
- token
-
string
Token, das gespeichert werden soll.
addUserToken(string, string, string, string, string)
Fügt ein gefälschtes Benutzertoken hinzu, damit es später abgerufen werden kann.
function addUserToken(connectionName: string, channelId: string, userId: string, token: string, magicCode?: string)
Parameter
- connectionName
-
string
Der Verbindungsname.
- channelId
-
string
Die Kanal-ID.
- userId
-
string
Die Benutzer-ID.
- token
-
string
Das zu speichernde Token.
- magicCode
-
string
(Optional) Der optionale Magische Code, der diesem Token zugeordnet werden soll.
continueConversation(Partial<ConversationReference>, (revocableContext: TurnContext) => Promise<void>)
Die TestAdapter
implementiert keine continueConversation()
und gibt einen Fehler zurück, wenn sie aufgerufen wird.
function continueConversation(_reference: Partial<ConversationReference>, _logic: (revocableContext: TurnContext) => Promise<void>): Promise<void>
Parameter
- _reference
-
Partial<ConversationReference>
Ein Verweis auf die Unterhaltung, um fortzufahren.
- _logic
-
(revocableContext: 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(string, string, string)
Erstellen Sie eine ConversationReference.Create a ConversationReference.
static function createConversation(name: string, user?: string, bot?: string): ConversationReference
Parameter
- name
-
string
Name der Unterhaltung (auch ID).
- user
-
string
name of the user (also id) default: User1.
- bot
-
string
name of the bot (also id) default: Bot.
Gibt zurück
ConversationReference
exchangeToken(TurnContext, string, string, TokenExchangeRequest)
Führt einen Tokenaustauschvorgang aus, z. B. für einmaliges Anmelden.
function exchangeToken(context: TurnContext, connectionName: string, userId: string, tokenExchangeRequest: TokenExchangeRequest): Promise<TokenResponse>
Parameter
- context
- TurnContext
(xref:botbuilder-core. TurnContext) für die aktuelle Unterhaltungswende mit dem Benutzer.
- connectionName
-
string
Name der zu verwendenden Authentifizierungsverbindung.
- userId
-
string
Benutzer-ID, die dem Token zugeordnet ist.
- tokenExchangeRequest
-
TokenExchangeRequest
Exchange-Anforderungsdetails, entweder ein Token, das ausgetauscht werden soll, oder ein URI zum Austausch.
Gibt zurück
Promise<TokenResponse>
Wenn die Zusage abgeschlossen ist, wird das ausgetauschte Token zurückgegeben.
getAadTokens(TurnContext, string, string[])
Meldet den Benutzer mit dem Tokenserver ab.
function getAadTokens(_context: TurnContext, _connectionName: string, _resourceUrls: string[]): Promise<[key: string]: TokenResponse>
Parameter
- _context
- TurnContext
Kontext für die aktuelle Unterhaltungswende mit dem Benutzer.
- _connectionName
-
string
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>
Ein Wörterbuch von resourceUrl zum entsprechenden TokenResponse.
getNextReply()
Dequeues und gibt die nächste Bot-Antwort aus der activeQueue zurück.
function getNextReply(): Partial<Activity>
Gibt zurück
Partial<Activity>
Die nächste Aktivität in der Warteschlange; oder nicht definiert, wenn die Warteschlange leer ist.
getSignInLink(TurnContext, string)
Ruft einen Signin-Link vom Tokenserver ab, der als Teil einer SigninCard gesendet werden kann.
function getSignInLink(context: TurnContext, connectionName: string): Promise<string>
Parameter
- context
- TurnContext
Kontext für die aktuelle Unterhaltungswende mit dem Benutzer.
- connectionName
-
string
Name der zu verwendenden Authentifizierungsverbindung.
Gibt zurück
Promise<string>
Ein Anmeldelink vom Tokenserver, der als Teil einer SigninCard gesendet werden kann.
getSignInResource(TurnContext, string, string, string)
Ruft eine Anmelderessource ab.
function getSignInResource(context: TurnContext, connectionName: string, userId?: string, _finalRedirect?: string): Promise<SignInUrlResponse>
Parameter
- context
- TurnContext
(xref:botbuilder-core. TurnContext) für die aktuelle Unterhaltungswende mit dem Benutzer.
- connectionName
-
string
Name der zu verwendenden Authentifizierungsverbindung.
- userId
-
string
Benutzer-ID
- _finalRedirect
-
string
Endgültige Umleitungs-URL.
Gibt zurück
Promise<SignInUrlResponse>
Ein Promise
mit einem neuen SignInUrlResponse-Objekt.
getTokenStatus(TurnContext, string, string, any)
Ruft asynchron den Tokenstatus für jede konfigurierte Verbindung für den angegebenen Benutzer ab. Ruft in testAdapter Token ab, die zuvor über addUserToken hinzugefügt wurden.
function getTokenStatus(context: TurnContext, userId: string, includeFilter?: string, _oAuthAppCredentials?: any): Promise<any[]>
Parameter
- context
- TurnContext
Das Kontextobjekt für die Drehung.
- userId
-
string
Die ID des Benutzers, für den der Tokenstatus abgerufen werden soll.
- 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.
- _oAuthAppCredentials
-
any
AppCredentials für OAuth.
Gibt zurück
Promise<any[]>
Die TokenStatus- abgerufenen Objekte.
getUserToken(TurnContext, string, string)
Ruft das OAuth-Token für einen Benutzer ab, der sich in einem Anmeldeablauf befindet.
function getUserToken(context: TurnContext, connectionName: string, magicCode?: string): Promise<TokenResponse>
Parameter
- context
- TurnContext
Kontext für die aktuelle Unterhaltungswende mit dem Benutzer.
- connectionName
-
string
Name der zu verwendenden Authentifizierungsverbindung.
- magicCode
-
string
(Optional) Optionaler Benutzer hat Code eingegeben, der überprüft werden soll.
Gibt zurück
Promise<TokenResponse>
Das OAuth-Token für einen Benutzer, der sich in einem Anmeldeablauf befindet.
makeActivity(string)
Erstellt eine Nachrichtenaktivität aus Text und dem aktuellen Unterhaltungskontext.
function makeActivity(text?: string): Partial<Activity>
Parameter
- text
-
string
Der Nachrichtentext.
Gibt zurück
Partial<Activity>
Eine entsprechende Nachrichtenaktivität.
processActivity(string | Partial<Activity>, (context: TurnContext) => Promise<any>)
Empfängt eine Aktivität und führt sie über die Middlewarepipeline aus.
function processActivity(activity: string | Partial<Activity>, callback?: (context: TurnContext) => Promise<any>): Promise<any>
Parameter
- activity
-
string | Partial<Activity>
Die zu verarbeitende Aktivität.
- callback
-
(context: TurnContext) => Promise<any>
Die zu aufrufende Bot-Logik.
Gibt zurück
Promise<any>
Eine Zusage, die den asynchronen Vorgang darstellt.
send(string | Partial<Activity>)
Sendet etwas an den Bot. Dies gibt eine neue TestFlow
Instanz zurück, die verwendet werden kann, um zusätzliche Schritte zum Überprüfen der Bots-Antwort und anschließendes Senden zusätzlicher Aktivitäten hinzuzufügen.
function send(userSays: string | Partial<Activity>): TestFlow
Parameter
- userSays
-
string | Partial<Activity>
Text oder Aktivität, der die Benutzereingabe simuliert.
Gibt zurück
eine neue TestFlow Instanz, die verwendet werden kann, um zusätzliche Schritte zum Überprüfen der Antwort der Bots und anschließendes Senden zusätzlicher Aktivitäten hinzuzufügen.
Hinweise
In diesem Beispiel wird gezeigt, wie Sie eine Nachricht senden und dann überprüfen, ob die Antwort wie erwartet war:
adapter.send('hi')
.assertReply('Hello World')
.then(() => done());
sendTextToBot(string, (context: TurnContext) => Promise<any>)
Verarbeitet eine Nachrichtenaktivität von einem Benutzer.
function sendTextToBot(userSays: string, callback: (context: TurnContext) => Promise<any>): Promise<any>
Parameter
- userSays
-
string
Der Text der Nachricht des Benutzers.
- callback
-
(context: TurnContext) => Promise<any>
Die zu aufrufende Bot-Logik.
Gibt zurück
Promise<any>
Eine Zusage, die den asynchronen Vorgang darstellt.
signOutUser(TurnContext, string, string)
Meldet den Benutzer mit dem Tokenserver ab.
function signOutUser(context: TurnContext, connectionName?: string, userId?: string): Promise<void>
Parameter
- context
- TurnContext
Kontext für die aktuelle Unterhaltungswende mit dem Benutzer.
- connectionName
-
string
Name der zu verwendenden Authentifizierungsverbindung.
- userId
-
string
Benutzer-ID zum Abmelden.
Gibt zurück
Promise<void>
test(string | Partial<Activity>, string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, string, number)
Senden Sie etwas an den Bot und erwartet, dass der Bot mit einer bestimmten Antwort zurückgegeben wird.
function test(userSays: string | Partial<Activity>, expected: string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, description?: string, _timeout?: number): TestFlow
Parameter
- userSays
-
string | Partial<Activity>
Text oder Aktivität, der die Benutzereingabe simuliert.
- expected
-
string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void
Text oder Aktivität der vom Bot gesendeten Antwort erwartet.
- description
-
string
(Optional) Beschreibung des Testfalls. Wenn keine bereitgestellt wird, wird eine generiert.
- _timeout
-
number
(Optional) Anzahl von Millisekunden, die auf eine Antwort von Bot warten. Der Standardwert ist ein Wert von 3000
.
Gibt zurück
Ein neues TestFlow--Objekt, das diesen Austausch an den modellierten Exchange anfüge.
Hinweise
Dies ist einfach ein Wrapper um Aufrufe von send()
und assertReply()
. Dies ist ein so häufiges Muster, das ein Hilfsprogramm bereitgestellt wird.
adapter.test('hi', 'Hello World')
.then(() => done());
testActivities(Partial<Activity>[], string, number)
Testen Sie eine Liste der Aktivitäten.
function testActivities(activities: Partial<Activity>[], description?: string, timeout?: number): TestFlow
Parameter
- activities
-
Partial<Activity>[]
Array von Aktivitäten.
- description
-
string
(Optional) Beschreibung des Testfalls. Wenn keine bereitgestellt wird, wird eine generiert.
- timeout
-
number
(Optional) Anzahl von Millisekunden, die auf eine Antwort von Bot warten. Der Standardwert ist ein Wert von 3000
.
Gibt zurück
Ein neues TestFlow--Objekt, das diesen Austausch an den modellierten Exchange anfüge.
Hinweise
Jede Aktivität mit der Rolle "Bot" wird mit assertReply() verarbeitet, und jede andere Aktivität wird als Benutzernachricht mit send() verarbeitet.
throwOnExchangeRequest(string, string, string, string)
Fügt eine Anweisung zum Auslösen einer Ausnahme während exchange-Anforderungen hinzu.
function throwOnExchangeRequest(connectionName: string, channelId: string, userId: string, exchangeableItem: string)
Parameter
- connectionName
-
string
Der Verbindungsname.
- channelId
-
string
Die Kanal-ID.
- userId
-
string
Die Benutzer-ID.
- exchangeableItem
-
string
Das austauschbare Token oder der Ressourcen-URI.
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
Geerbt vonBotAdapter.continueConversationAsync-
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
Geerbt vonBotAdapter.continueConversationAsync-
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
Geerbt vonBotAdapter.continueConversationAsync-
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.
Geerbt vonBotAdapter.createConversationAsync-
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.
Geerbt vonBotAdapter.use