BotFrameworkAdapter class
Предупреждение
Теперь этот API является нерекомендуемым.
Use CloudAdapter
instead.
- Extends
-
BotAdapter
Конструкторы
Bot |
Создает новый экземпляр класса BotFrameworkAdapter . |
Свойства
is |
Используется в контекстах потоковой передачи для проверки того, открыто ли потоковое подключение для бота для отправки действий. |
Token |
Унаследованные свойства
Bot |
|
Connector |
|
OAuth |
|
on |
Методы
continue |
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время. |
continue |
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время. |
create |
Создает клиент соединителя. |
create |
Создайте ConnectorClient с ClaimsIdentity. |
create |
Создайте ConnectorClient с ClaimsIdentity и явной аудиторией. |
create |
Асинхронно создает и начинает беседу с пользователем в канале. |
create |
Асинхронно создает и начинает беседу с пользователем в канале. |
delete |
Асинхронно удаляет существующее действие. Этот интерфейс поддерживает платформу и не предназначен для вызова непосредственно для кода. Используйте TurnContext.deleteActivity , чтобы удалить действие из кода бота. |
delete |
Асинхронно удаляет участника из текущей беседы. |
emulate |
Асинхронно отправляет эмулированную карточку OAuth для канала. Этот метод поддерживает платформу и не предназначен для вызова непосредственно для кода. |
exchange |
Асинхронно выполняет операцию обмена маркерами, например для единого входа. |
get |
Асинхронный выход пользователя с сервера маркеров. |
get |
|
get |
Асинхронно перечисляет члены данного действия. |
get |
Асинхронно перечисляет участников текущей беседы. |
get |
Для указанного канала асинхронно получает страницу бесед, в которых принимал участие этот бот. |
get |
Асинхронно получает ссылку для входа с сервера маркеров, которую можно отправить как часть SigninCard. |
get |
|
get |
Асинхронно получает необработанный ресурс входа, который будет отправлен пользователю для входа. |
get |
Асинхронно извлекает состояние маркера для каждого настроенного подключения для данного пользователя. |
get |
|
get |
Асинхронно пытается получить маркер для пользователя, который находится в потоке входа. |
get |
|
process(Request, INode |
Обработка подключения к веб-сокету путем применения логической функции к каждому запросу потоковой передачи. |
process(Request, Response, (context: Turn |
Обработка веб-запроса путем применения логической функции. |
process |
Асинхронно создает контекст шага и запускает конвейер ПО промежуточного слоя для входящего действия. |
process |
Асинхронно создает контекст шага и запускает конвейер ПО промежуточного слоя для входящего действия. |
process |
Проверяет допустимость запроса и пытается сопоставить его с правильной виртуальной конечной точкой, а затем при необходимости создает и возвращает ответ. |
send |
Асинхронно отправляет набор исходящих действий на сервер каналов. Этот метод поддерживает платформу и не предназначен для вызова непосредственно для кода. Используйте метод sendActivity или sendActivities контекста шага из кода бота. |
sign |
Асинхронный выход пользователя с сервера маркеров. |
sign |
|
update |
Асинхронно заменяет предыдущее действие обновленной версией. Этот интерфейс поддерживает платформу и не предназначен для вызова непосредственно для кода. Используйте TurnContext.updateActivity для обновления действия из кода бота. |
use |
Подключает обработчик к серверу именованного канала и начинает прослушивать входящие запросы. |
use |
Обработайте первоначальный запрос, чтобы установить долгосрочное подключение через сервер потоковой передачи. |
Наследуемые методы
continue |
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время. |
continue |
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время. |
continue |
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время. |
create |
Создает беседу в указанном канале. |
use((context: Turn |
Добавляет ПО промежуточного слоя в конвейер адаптера. |
Сведения о конструкторе
BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)
Создает новый экземпляр класса BotFrameworkAdapter .
new BotFrameworkAdapter(settings?: Partial<BotFrameworkAdapterSettings>)
Параметры
- settings
-
Partial<BotFrameworkAdapterSettings>
Необязательный элемент. Параметры, используемые для этого экземпляра адаптера.
Комментарии
settings
Если параметр не содержит значения channelService или openIdMetadata, конструктор проверяет переменные среды процесса на наличие этих значений. Эти значения могут быть заданы при подготовке бота в Azure, и если это необходимо для правильной работы бота в глобальном облаке или в национальном облаке.
Класс BotFrameworkAdapterSettings определяет доступные параметры адаптера.
Сведения о свойстве
isStreamingConnectionOpen
Используется в контекстах потоковой передачи для проверки того, открыто ли потоковое подключение для бота для отправки действий.
boolean isStreamingConnectionOpen
Значение свойства
boolean
Значение true, если подключение потоковой передачи открыто, в противном случае — значение false.
TokenApiClientCredentialsKey
TokenApiClientCredentialsKey: symbol
Значение свойства
symbol
Сведения об унаследованном свойстве
BotIdentityKey
BotIdentityKey: symbol
Значение свойства
symbol
Наследуется от BotAdapter.BotIdentityKey
ConnectorClientKey
ConnectorClientKey: symbol
Значение свойства
symbol
Наследуется от BotAdapter.ConnectorClientKey
OAuthScopeKey
OAuthScopeKey: symbol
Значение свойства
symbol
Наследуется от BotAdapter.OAuthScopeKey
onTurnError
onTurnError: (context: TurnContext, error: Error) => Promise<void>
Значение свойства
(context: TurnContext, error: Error) => Promise<void>
Наследуется от BotAdapter.onTurnError
Сведения о методе
continueConversation(Partial<ConversationReference>, (context: TurnContext) => Promise<void>)
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.
function continueConversation(reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>
Параметры
- reference
-
Partial<ConversationReference>
Ссылка на беседу для продолжения.
- logic
-
(context: TurnContext) => Promise<void>
Асинхронный метод, вызываемый после выполнения ПО промежуточного слоя адаптера.
Возвращаемое значение
Promise<void>
Комментарии
Это часто называют упреждающим уведомлением. Бот может заранее отправлять сообщение беседе или пользователю, не дожидаясь входящего сообщения. Например, бот может использовать этот метод для отправки уведомлений или купонов пользователю.
Чтобы отправить упреждающее сообщение, выполните следующее:
- Сохраните копию ConversationReference из входящего действия. Например, ссылку на беседу можно сохранить в базе данных.
- Вызовите этот метод, чтобы возобновить беседу позже. Используйте сохраненную ссылку для доступа к беседе.
- При успешном выполнении адаптер создает объект TurnContext и вызывает
logic
обработчик функции. Используйте функциюlogic
для отправки упреждающего сообщения.
Чтобы скопировать ссылку из любого входящего действия в беседе, используйте метод TurnContext.getConversationReference .
Этот метод аналогичен методу processActivity .
Адаптер создает TurnContext и направляет его через ПО промежуточного слоя перед вызовом обработчика logic
. Созданное действие будет иметь тип event и имя continueConversation.
Например:
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>)
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.
function continueConversation(reference: Partial<ConversationReference>, oAuthScope: string, logic: (context: TurnContext) => Promise<void>): Promise<void>
Параметры
- reference
-
Partial<ConversationReference>
(xref:botframework-schema. ConversationReference) беседы для продолжения.
- oAuthScope
-
string
Получатель всех отправленных действий или функции, вызываемой для продолжения диалога.
- logic
-
(context: TurnContext) => Promise<void>
Необязательный элемент. Асинхронный метод, вызываемый после выполнения ПО промежуточного слоя адаптера.
Возвращаемое значение
Promise<void>
createConnectorClient(string)
Создает клиент соединителя.
function createConnectorClient(serviceUrl: string): ConnectorClient
Параметры
- serviceUrl
-
string
URL-адрес службы клиента.
Возвращаемое значение
ConnectorClient
Экземпляр ConnectorClient .
Комментарии
Переопределите его в производном классе, чтобы создать макет клиента соединителя для модульного тестирования.
createConnectorClientWithIdentity(string, ClaimsIdentity)
Создайте ConnectorClient с ClaimsIdentity.
function createConnectorClientWithIdentity(serviceUrl: string, identity: ClaimsIdentity): Promise<ConnectorClient>
Параметры
- serviceUrl
-
string
URL-адрес службы клиента.
- identity
-
ClaimsIdentity
ClaimsIdentity
Возвращаемое значение
Promise<ConnectorClient>
Комментарии
Если ClaimsIdentity содержит утверждения для запроса Skills, создайте ConnectorClient для использования с Skills. Наследует правильную аудиторию из свойства ClaimsIdentity или учетных данных экземпляра.
createConnectorClientWithIdentity(string, ClaimsIdentity, string)
Создайте ConnectorClient с ClaimsIdentity и явной аудиторией.
function createConnectorClientWithIdentity(serviceUrl: string, identity: ClaimsIdentity, audience: string): Promise<ConnectorClient>
Параметры
- serviceUrl
-
string
URL-адрес службы клиента.
- identity
-
ClaimsIdentity
ClaimsIdentity
- audience
-
string
Получатель сообщений ConnectorClient. Обычно это служба канала Bot Framework или AppId другого бота.
Возвращаемое значение
Promise<ConnectorClient>
Комментарии
Если урезанная аудитория не является строкой, отличной от нуля, аудитория будет производным от Свойства ClaimsIdentity или учетных данных экземпляра.
createConversation(Partial<ConversationReference>, (context: TurnContext) => Promise<void>)
Асинхронно создает и начинает беседу с пользователем в канале.
function createConversation(reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>
Параметры
- reference
-
Partial<ConversationReference>
Справочник для создаваемой беседы.
- logic
-
(context: TurnContext) => Promise<void>
Асинхронный метод, вызываемый после выполнения ПО промежуточного слоя адаптера.
Возвращаемое значение
Promise<void>
обещание, представляющее асинхронную операцию
createConversation(Partial<ConversationReference>, Partial<ConversationParameters>, (context: TurnContext) => Promise<void>)
Асинхронно создает и начинает беседу с пользователем в канале.
function createConversation(reference: Partial<ConversationReference>, parameters: Partial<ConversationParameters>, logic: (context: TurnContext) => Promise<void>): Promise<void>
Параметры
- reference
-
Partial<ConversationReference>
Справочник для создаваемой беседы.
- parameters
-
Partial<ConversationParameters>
Параметры, используемые при создании беседы
- logic
-
(context: TurnContext) => Promise<void>
Асинхронный метод, вызываемый после выполнения ПО промежуточного слоя адаптера.
Возвращаемое значение
Promise<void>
обещание, представляющее асинхронную операцию
deleteActivity(TurnContext, Partial<ConversationReference>)
Асинхронно удаляет существующее действие. Этот интерфейс поддерживает платформу и не предназначен для вызова непосредственно для кода. Используйте TurnContext.deleteActivity , чтобы удалить действие из кода бота.
function deleteActivity(context: TurnContext, reference: Partial<ConversationReference>): Promise<void>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- reference
-
Partial<ConversationReference>
Справочные сведения о беседах для удаляемого действия.
Возвращаемое значение
Promise<void>
Комментарии
Не все каналы поддерживают эту операцию. Для каналов, которые этого не сделали, этот вызов может вызвать исключение.
deleteConversationMember(TurnContext, string)
Асинхронно удаляет участника из текущей беседы.
function deleteConversationMember(context: TurnContext, memberId: string): Promise<void>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- memberId
-
string
Идентификатор участника, удаляемого из беседы.
Возвращаемое значение
Promise<void>
Комментарии
Удалите сведения об удостоверениях участника из беседы.
Не все каналы поддерживают эту операцию. Для каналов, которые этого не сделали, этот вызов может вызвать исключение.
emulateOAuthCards(TurnContext | string, boolean)
Асинхронно отправляет эмулированную карточку OAuth для канала. Этот метод поддерживает платформу и не предназначен для вызова непосредственно для кода.
function emulateOAuthCards(contextOrServiceUrl: TurnContext | string, emulate: boolean): Promise<void>
Параметры
- contextOrServiceUrl
-
TurnContext | string
URL-адрес эмулятора.
- emulate
-
boolean
true
для отправки эмулированной карточки OAuth в эмулятор; или false
, чтобы не отправлять карточку.
Возвращаемое значение
Promise<void>
Комментарии
При тестировании бота в Bot Framework Emulator этот метод может эмулировать взаимодействие с картой OAuth.
exchangeToken(TurnContext, string, string, TokenExchangeRequest, CoreAppCredentials)
Асинхронно выполняет операцию обмена маркерами, например для единого входа.
function exchangeToken(context: TurnContext, connectionName: string, userId: string, tokenExchangeRequest: TokenExchangeRequest, appCredentials?: CoreAppCredentials): Promise<TokenResponse>
Параметры
- context
-
TurnContext
Контекст для текущей беседы с пользователем.
- connectionName
-
string
Имя используемого подключения проверки подлинности.
- userId
-
string
Идентификатор пользователя, который будет связан с маркером.
- tokenExchangeRequest
-
TokenExchangeRequest
Сведения о запросе на обмен: токен для обмена или URI для обмена.
- appCredentials
-
CoreAppCredentials
Необязательный элемент. CoreAppCredentials для OAuth.
Возвращаемое значение
Promise<TokenResponse>
getAadTokens(TurnContext, string, string[])
Асинхронный выход пользователя с сервера маркеров.
function getAadTokens(context: TurnContext, connectionName: string, resourceUrls: string[]): Promise<[key: string]: TokenResponse>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- connectionName
-
string
Имя используемого подключения проверки подлинности.
- resourceUrls
-
string[]
Список URL-адресов ресурсов для получения маркеров.
Возвращаемое значение
Promise<[key: string]: TokenResponse>
Карта объектов TokenResponse по URL-адресу ресурса.
getAadTokens(TurnContext, string, string[], CoreAppCredentials)
function getAadTokens(context: TurnContext, connectionName: string, resourceUrls: string[], oAuthAppCredentials?: CoreAppCredentials): Promise<[key: string]: TokenResponse>
Параметры
- context
-
TurnContext
- connectionName
-
string
- resourceUrls
-
string[]
- oAuthAppCredentials
-
CoreAppCredentials
Возвращаемое значение
Promise<[key: string]: TokenResponse>
getActivityMembers(TurnContext, string)
Асинхронно перечисляет члены данного действия.
function getActivityMembers(context: TurnContext, activityId?: string): Promise<ChannelAccount[]>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- activityId
-
string
Необязательный элемент. Идентификатор действия, для получения элементов. Если не указано, используется текущий идентификатор действия.
Возвращаемое значение
Promise<ChannelAccount[]>
Массив объектов ChannelAccount для пользователей, участвующих в заданном действии.
Комментарии
Возвращает массив объектов ChannelAccount для пользователей, участвующих в заданном действии.
Это отличается от getConversationMembers тем, что он будет возвращать только тех пользователей, которые непосредственно участвуют в действии, а не всех участников беседы.
getConversationMembers(TurnContext)
Асинхронно перечисляет участников текущей беседы.
function getConversationMembers(context: TurnContext): Promise<ChannelAccount[]>
Параметры
- context
-
TurnContext
Объект контекста для шага.
Возвращаемое значение
Promise<ChannelAccount[]>
Массив объектов ChannelAccount для всех пользователей, участвующих в беседе.
Комментарии
Возвращает массив объектов ChannelAccount для всех пользователей, участвующих в беседе.
Это отличается от getActivityMembers тем, что он возвращает всех участников беседы, а не только тех, кто непосредственно участвует в определенном действии.
getConversations(TurnContext | string, string)
Для указанного канала асинхронно получает страницу бесед, в которых принимал участие этот бот.
function getConversations(contextOrServiceUrl: TurnContext | string, continuationToken?: string): Promise<ConversationsResult>
Параметры
- contextOrServiceUrl
-
TurnContext | string
URL-адрес сервера канала для запроса или объекта TurnContext из диалога в канале.
- continuationToken
-
string
Необязательный элемент. Токен продолжения с предыдущей страницы результатов.
Пропустите этот параметр или используйте undefined
для получения первой страницы результатов.
Возвращаемое значение
Promise<ConversationsResult>
Объект ConversationsResult , содержащий страницу результатов и маркер продолжения.
Комментарии
Свойство conversations возвращаемого значения содержит страницу объектов ConversationMembers . Идентификатор каждого объекта — это идентификатор беседы, в которой бот участвовал в этом канале. Этот метод можно вызывать вне контекста диалога, так как требуются только URL-адрес службы бота и учетные данные.
Канал пакетирует результаты в страницах. Если свойство continuationToken результата не является пустым, есть дополнительные страницы для получения. Используйте возвращенный маркер, чтобы получить следующую страницу результатов.
contextOrServiceUrl
Если параметр является TurnContext, URL-адрес сервера канала извлекается из contextOrServiceUrl
. действие. serviceUrl.
getSignInLink(TurnContext, string, AppCredentials, string, string)
Асинхронно получает ссылку для входа с сервера маркеров, которую можно отправить как часть SigninCard.
function getSignInLink(context: TurnContext, connectionName: string, oAuthAppCredentials?: AppCredentials, userId?: string, finalRedirect?: string): Promise<string>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- connectionName
-
string
Имя используемого подключения проверки подлинности.
- oAuthAppCredentials
-
AppCredentials
AppCredentials для OAuth.
- userId
-
string
Идентификатор пользователя, который будет связан с маркером.
- finalRedirect
-
string
Окончательный URL-адрес, на который будет перенаправляться поток OAuth.
Возвращаемое значение
Promise<string>
getSignInLink(TurnContext, string, CoreAppCredentials, string, string)
function getSignInLink(context: TurnContext, connectionName: string, oAuthAppCredentials?: CoreAppCredentials, userId?: string, finalRedirect?: string): Promise<string>
Параметры
- context
-
TurnContext
- connectionName
-
string
- oAuthAppCredentials
-
CoreAppCredentials
- userId
-
string
- finalRedirect
-
string
Возвращаемое значение
Promise<string>
getSignInResource(TurnContext, string, string, string, CoreAppCredentials)
Асинхронно получает необработанный ресурс входа, который будет отправлен пользователю для входа.
function getSignInResource(context: TurnContext, connectionName: string, userId?: string, finalRedirect?: string, appCredentials?: CoreAppCredentials): Promise<SignInUrlResponse>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- connectionName
-
string
Имя используемого подключения проверки подлинности.
- userId
-
string
Идентификатор пользователя, который будет связан с маркером.
- finalRedirect
-
string
Окончательный URL-адрес, на который будет перенаправляться поток OAuth.
- appCredentials
-
CoreAppCredentials
Необязательный элемент. CoreAppCredentials для OAuth.
Возвращаемое значение
Promise<SignInUrlResponse>
Объект BotSignInGetSignInResourceResponse .
getTokenStatus(TurnContext, string, string)
Асинхронно извлекает состояние маркера для каждого настроенного подключения для данного пользователя.
function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string): Promise<TokenStatus[]>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- userId
-
string
Необязательный элемент. Если он имеется, идентификатор пользователя, для которого требуется получить состояние маркера. В противном случае используется идентификатор пользователя, отправившего текущее действие.
- includeFilter
-
string
Необязательный элемент. Разделенный запятыми список подключений для включения. При наличии параметр ограничивает маркеры, includeFilter
возвращаемые этим методом.
Возвращаемое значение
Promise<TokenStatus[]>
Полученные объекты TokenStatus .
getTokenStatus(TurnContext, string, string, CoreAppCredentials)
function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<TokenStatus[]>
Параметры
- context
-
TurnContext
- userId
-
string
- includeFilter
-
string
- oAuthAppCredentials
-
CoreAppCredentials
Возвращаемое значение
Promise<TokenStatus[]>
getUserToken(TurnContext, string, string)
Асинхронно пытается получить маркер для пользователя, который находится в потоке входа.
function getUserToken(context: TurnContext, connectionName: string, magicCode?: string): Promise<TokenResponse>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- connectionName
-
string
Имя используемого подключения проверки подлинности.
- magicCode
-
string
Необязательный элемент. Код проверки, введенный пользователем.
Возвращаемое значение
Promise<TokenResponse>
Объект TokenResponse , содержащий маркер пользователя.
getUserToken(TurnContext, string, string, CoreAppCredentials)
function getUserToken(context: TurnContext, connectionName: string, magicCode?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<TokenResponse>
Параметры
- context
-
TurnContext
- connectionName
-
string
- magicCode
-
string
- oAuthAppCredentials
-
CoreAppCredentials
Возвращаемое значение
Promise<TokenResponse>
process(Request, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<void>)
Обработка подключения к веб-сокету путем применения логической функции к каждому запросу потоковой передачи.
function process(req: Request, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<void>): Promise<void>
Параметры
- req
- Request
Входящий HTTP-запрос
- socket
-
INodeSocket
Соответствующий INodeSocket
- head
-
INodeBuffer
Соответствующий INodeBuffer
- logic
-
(context: TurnContext) => Promise<void>
Применяемая логическая функция
Возвращаемое значение
Promise<void>
обещание, представляющее асинхронную операцию.
process(Request, Response, (context: TurnContext) => Promise<void>)
Обработка веб-запроса путем применения логической функции.
function process(req: Request, res: Response, logic: (context: TurnContext) => Promise<void>): Promise<void>
Параметры
- req
- Request
Входящий HTTP-запрос
- logic
-
(context: TurnContext) => Promise<void>
Применяемая логическая функция
Возвращаемое значение
Promise<void>
обещание, представляющее асинхронную операцию.
processActivity(WebRequest, WebResponse, (context: TurnContext) => Promise<any>)
Асинхронно создает контекст шага и запускает конвейер ПО промежуточного слоя для входящего действия.
function processActivity(req: WebRequest, res: WebResponse, logic: (context: TurnContext) => Promise<any>): Promise<void>
Параметры
- req
- WebRequest
Объект запроса в стиле Express или Restify.
- res
- WebResponse
Объект ответа в стиле Express или Restify.
- logic
-
(context: TurnContext) => Promise<any>
Функция, вызываемая в конце конвейера ПО промежуточного слоя.
Возвращаемое значение
Promise<void>
Комментарии
Это основной способ получения ботом входящих сообщений и определения поворота в беседе. Этот метод выполняет следующее:
- Анализирует и проверяет подлинность входящего запроса.
- Действие считывается из текста входящего запроса. Если не удается проанализировать действие, будет возвращена ошибка.
- Удостоверение отправителя проходит проверку подлинности как эмулятор или действительный сервер Майкрософт с помощью бота
appId
иappPassword
. Запрос отклоняется, если удостоверение отправителя не проверено.
- Создает объект TurnContext для полученного действия.
- Этот объект заключен в оболочку с отозванным прокси-сервером.
- После завершения этого метода прокси-сервер отменяется.
- Отправляет контекст поворота через конвейер ПО промежуточного слоя адаптера.
- Отправляет контекст поворота в функцию
logic
.- В это время бот может выполнить дополнительную маршрутизацию или обработку.
Возврат обещания (или предоставление обработчика
async
) приведет к тому, что адаптер будет ожидать завершения любых асинхронных операций. -
logic
После завершения функции разрешается цепочка обещаний, настроенная ПО промежуточного слоя.
- В это время бот может выполнить дополнительную маршрутизацию или обработку.
Возврат обещания (или предоставление обработчика
Совет
Если в выходных данных консоли бота отображается ошибка TypeError: Cannot perform 'set' on a proxy that has been revoked
, скорее всего, асинхронная функция использовалась без использования ключевого await
слова . Убедитесь, что все асинхронные функции используют await!
ПО промежуточного слоя может замыкать поворот. В этом случае последующие ПО промежуточного logic
слоя и функция не вызываются, однако все ПО промежуточного слоя до этого момента по-прежнему выполняются до завершения.
Дополнительные сведения о конвейере ПО промежуточного слоя см. в статьях о работе ботов и в статьях о ПО промежуточного слоя .
Используйте метод использования адаптера, чтобы добавить в адаптер ПО промежуточного слоя.
Например:
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>)
Асинхронно создает контекст шага и запускает конвейер ПО промежуточного слоя для входящего действия.
function processActivityDirect(activity: Activity, logic: (context: TurnContext) => Promise<any>): Promise<void>
Параметры
- activity
-
Activity
Обрабатываемые действия.
- logic
-
(context: TurnContext) => Promise<any>
Функция, вызываемая в конце конвейера ПО промежуточного слоя.
Возвращаемое значение
Promise<void>
Комментарии
Это основной способ получения ботом входящих сообщений и определения поворота в беседе. Этот метод выполняет следующее:
- Создает объект TurnContext для полученного действия.
- Этот объект заключен в отозванный прокси-сервер.
- После завершения этого метода прокси-сервер будет отозван.
- Отправляет контекст поворота через конвейер ПО промежуточного слоя адаптера.
- Отправляет контекст шага в функцию
logic
.- В это время бот может выполнять дополнительную маршрутизацию или обработку.
Возврат обещания (или предоставление обработчика
async
) приведет к тому, что адаптер будет ожидать завершения любых асинхронных операций. -
logic
После завершения функции цепочка обещаний, настроенная ПО промежуточного слоя, разрешается.
- В это время бот может выполнять дополнительную маршрутизацию или обработку.
Возврат обещания (или предоставление обработчика
ПО промежуточного слоя может за короткое замыкать поворот. В этом случае последующее ПО промежуточного logic
слоя и функция не вызываются, однако все ПО промежуточного слоя до этого момента по-прежнему выполняются до завершения.
Дополнительные сведения о конвейере ПО промежуточного слоя см. в статьях о работе ботов и ПО промежуточного слоя .
Используйте метод use адаптера, чтобы добавить в адаптер ПО промежуточного слоя.
processRequest(IReceiveRequest)
Проверяет допустимость запроса и пытается сопоставить его с правильной виртуальной конечной точкой, а затем при необходимости создает и возвращает ответ.
function processRequest(request: IReceiveRequest): Promise<StreamingResponse>
Параметры
- request
-
IReceiveRequest
ReceiveRequest из подключенного канала.
Возвращаемое значение
Promise<StreamingResponse>
Ответ, созданный BotAdapter для отправки клиенту, который создал запрос.
sendActivities(TurnContext, Partial<Activity>[])
Асинхронно отправляет набор исходящих действий на сервер каналов. Этот метод поддерживает платформу и не предназначен для вызова непосредственно для кода. Используйте метод sendActivity или sendActivities контекста шага из кода бота.
function sendActivities(context: TurnContext, activities: Partial<Activity>[]): Promise<ResourceResponse[]>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- activities
-
Partial<Activity>[]
Отправляемые действия.
Возвращаемое значение
Promise<ResourceResponse[]>
Массив ResourceResponse
Комментарии
Действия будут отправляться один за другим в порядке их получения. Объект ответа будет возвращен для каждого отправленного действия. Для message
действий он будет содержать идентификатор доставленного сообщения.
signOutUser(TurnContext, string, string)
Асинхронный выход пользователя с сервера маркеров.
function signOutUser(context: TurnContext, connectionName?: string, userId?: string): Promise<void>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- connectionName
-
string
Имя используемого подключения проверки подлинности.
- userId
-
string
Идентификатор пользователя для выхода.
Возвращаемое значение
Promise<void>
signOutUser(TurnContext, string, string, CoreAppCredentials)
function signOutUser(context: TurnContext, connectionName?: string, userId?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<void>
Параметры
- context
-
TurnContext
- connectionName
-
string
- userId
-
string
- oAuthAppCredentials
-
CoreAppCredentials
Возвращаемое значение
Promise<void>
updateActivity(TurnContext, Partial<Activity>)
Асинхронно заменяет предыдущее действие обновленной версией. Этот интерфейс поддерживает платформу и не предназначен для вызова непосредственно для кода. Используйте TurnContext.updateActivity для обновления действия из кода бота.
function updateActivity(context: TurnContext, activity: Partial<Activity>): Promise<ResourceResponse | void>
Параметры
- context
-
TurnContext
Объект контекста для шага.
- activity
-
Partial<Activity>
Обновленная версия заменяемого действия.
Возвращаемое значение
Promise<ResourceResponse | void>
Объект , Promise
представляющий ResourceResponse для операции.
Комментарии
Не все каналы поддерживают эту операцию. Для каналов, которые этого не сделали, этот вызов может вызвать исключение.
useNamedPipe((context: TurnContext) => Promise<any>, string, number, () => void)
Подключает обработчик к серверу именованного канала и начинает прослушивать входящие запросы.
function useNamedPipe(logic: (context: TurnContext) => Promise<any>, pipeName?: string, retryCount?: number, onListen?: () => void): Promise<void>
Параметры
- logic
-
(context: TurnContext) => Promise<any>
Логика, которая будет обрабатывать входящие запросы.
- pipeName
-
string
Имя именованного канала, используемого при создании сервера.
- retryCount
-
number
Количество попыток привязки входящего и исходящего канала
- onListen
-
() => void
Необязательный обратный вызов, который срабатывает один раз, когда сервер прослушивает входящий и исходящий канал
Возвращаемое значение
Promise<void>
useWebSocket(WebRequest, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<any>)
Обработайте первоначальный запрос, чтобы установить долгосрочное подключение через сервер потоковой передачи.
function useWebSocket(req: WebRequest, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<any>): Promise<void>
Параметры
- req
- WebRequest
Запрос на подключение.
- socket
-
INodeSocket
Необработанное подключение сокета между ботом (сервером) и каналом или вызывающим абонентом (клиентом).
- head
-
INodeBuffer
Первый пакет обновленного потока.
- logic
-
(context: TurnContext) => Promise<any>
Логика, которая обрабатывает входящие запросы потоковой передачи в течение времени существования подключения WebSocket.
Возвращаемое значение
Promise<void>
Сведения о наследуемом методе
continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.
function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>
Параметры
- claimsIdentity
-
ClaimsIdentity
Свойство ClaimsIdentity для диалога.
- reference
-
Partial<ConversationReference>
Частичная ссылка ConversationReference для продолжения беседы.
- logic
-
(context: TurnContext) => Promise<void>
Асинхронный метод, вызываемый после выполнения ПО промежуточного слоя адаптера.
Возвращаемое значение
Promise<void>
обещание, представляющее асинхронную операцию
Наследуется от BotAdapter.continueConversationAsync
continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.
function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, audience: string, logic: (context: TurnContext) => Promise<void>): Promise<void>
Параметры
- claimsIdentity
-
ClaimsIdentity
Свойство ClaimsIdentity для диалога.
- reference
-
Partial<ConversationReference>
Частичная ссылка ConversationReference для продолжения беседы.
- audience
-
string
Значение , обозначающее получателя упреждающего сообщения.
- logic
-
(context: TurnContext) => Promise<void>
Асинхронный метод, вызываемый после выполнения ПО промежуточного слоя адаптера.
Возвращаемое значение
Promise<void>
обещание, представляющее асинхронную операцию
Наследуется от BotAdapter.continueConversationAsync
continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.
function continueConversationAsync(botAppId: string, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>
Параметры
- botAppId
-
string
Идентификатор приложения бота. Этот параметр игнорируется в адаптерах с одним клиентом (консоль, тест и т. д.), но имеет решающее значение для BotFrameworkAdapter, который поддерживает несколько клиентов.
- reference
-
Partial<ConversationReference>
Частичная ссылка ConversationReference для продолжения беседы.
- logic
-
(context: TurnContext) => Promise<void>
Асинхронный метод, вызываемый после выполнения ПО промежуточного слоя адаптера.
Возвращаемое значение
Promise<void>
обещание, представляющее асинхронную операцию
Наследуется от BotAdapter.continueConversationAsync
createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)
Создает беседу в указанном канале.
function createConversationAsync(_botAppId: string, _channelId: string, _serviceUrl: string, _audience: string, _conversationParameters: ConversationParameters, _logic: (context: TurnContext) => Promise<void>): Promise<void>
Параметры
- _botAppId
-
string
Идентификатор приложения бота.
- _channelId
-
string
Идентификатор канала.
- _serviceUrl
-
string
Идентификатор канала.
- _audience
-
string
Аудитория соединителя.
- _conversationParameters
-
ConversationParameters
Сведения о беседе, используемые для создания беседы
- _logic
-
(context: TurnContext) => Promise<void>
Метод, вызываемый для результирующего поворота бота.
Возвращаемое значение
Promise<void>
Обещание, представляющее асинхронную операцию
Комментарии
Чтобы начать беседу, бот должен знать сведения о своей учетной записи и сведения об учетной записи пользователя в этом канале. Большинство _channels поддерживают только инициализацию прямого сообщения (не групповой) беседы.
Адаптер пытается создать новую беседу в канале, а затем отправляет conversationUpdate
действие через конвейер ПО промежуточного слоя в логический метод.
Если диалог установлен с указанными пользователями, идентификатор беседы действия будет содержать идентификатор новой беседы.
Наследуется от BotAdapter.createConversationAsync
use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])
Добавляет ПО промежуточного слоя в конвейер адаптера.
function use(middlewares: (context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]): this
Параметры
- middlewares
-
(context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]
Добавляемый обработчик ПО промежуточного слоя или ПО промежуточного слоя.
Возвращаемое значение
this
Обновленный объект адаптера.
Комментарии
ПО промежуточного слоя добавляется в адаптер во время инициализации. Каждый шаг адаптер вызывает ПО промежуточного слоя в том порядке, в котором вы его добавили.
Наследуется от BotAdapter.use