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>
Optional. Параметры, используемые для этого экземпляра адаптера.
Комментарии
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 . Созданное действие будет иметь тип события и имя "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>
Optional. Асинхронный метод для вызова после запуска ПО промежуточного слоя адаптера.
Возвращаемое значение
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 содержит утверждения для запроса навыков, создайте соединительClient для использования с навыками. Получает правильную аудиторию из свойства 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 этот метод может эмулировать взаимодействие с карточкой 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
Optional. 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
Optional. Идентификатор действия для получения членов. Если он не указан, используется текущий идентификатор действия.
Возвращаемое значение
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
Optional. Маркер продолжения из предыдущей страницы результатов.
Опустить этот параметр или использовать undefined для получения первой страницы результатов.
Возвращаемое значение
Promise<ConversationsResult>
Объект ConversationsResult , содержащий страницу результатов и маркер продолжения.
Комментарии
Свойство бесед возвращаемого значения содержит страницу объектов ConversationMembers . Идентификатор каждого объекта — это идентификатор беседы, в которой бот участвовал в этом канале. Этот метод можно вызвать извне контекста беседы, так как требуются только URL-адрес службы бота и учетные данные.
Пакеты каналов приводят к страницам. Если свойство продолжения результата не пусто, то для получения дополнительных страниц есть дополнительные страницы. Используйте возвращенный маркер, чтобы получить следующую страницу результатов.
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
Optional. CoreAppCredentials для OAuth.
Возвращаемое значение
Promise<SignInUrlResponse>
Объект BotSignInGetSignInResourceResponse .
getTokenStatus(TurnContext, string, string)
Асинхронно извлекает состояние маркера для каждого настроенного подключения для данного пользователя.
function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string): Promise<TokenStatus[]>
Параметры
- context
-
TurnContext
Объект контекста для поворота.
- userId
-
string
Optional. При наличии идентификатор пользователя, для которого требуется получить состояние маркера. В противном случае используется идентификатор пользователя, отправившего текущее действие.
- includeFilter
-
string
Optional. Список подключений, разделенных запятыми. При наличии параметр 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
Optional. Код проверки, введенный пользователем.
Возвращаемое значение
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-запрос
- res
- Response
Соответствующий 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>
Комментарии
Это основной способ, который бот получает входящие сообщения и определяет поворот беседы. Этот метод:
- Анализирует и проверяет подлинность входящего запроса.
- Действие считывается из текста входящего запроса. Ошибка будет возвращена, если действие не может быть проанализировано.
- Удостоверение отправителя проходит проверку подлинности в качестве эмулятора или допустимого сервера Microsoft с помощью бота
appIdиappPassword. Запрос отклоняется, если удостоверение отправителя не проверено.
- Создает объект TurnContext для полученного действия.
- Этот объект упакован с отозванным прокси-сервером.
- После завершения этого метода прокси-сервер отменяется.
- Отправляет контекст поворота через конвейер ПО промежуточного слоя адаптера.
- Отправляет контекст поворота функции
logic.- Бот может выполнять дополнительную маршрутизацию или обработку в настоящее время.
Возврат обещания (или предоставление обработчика
async) приведет к тому, что адаптер будет ожидать завершения любых асинхронных операций. -
logicПосле завершения функции будет разрешена цепочка обещаний, настроенная по промежуточному слоям.
- Бот может выполнять дополнительную маршрутизацию или обработку в настоящее время.
Возврат обещания (или предоставление обработчика
Tip
Если вы видите ошибку 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 функция не вызывается; однако все по промежуточному слоям до этого момента все еще выполняются до завершения.
Дополнительные сведения о конвейере ПО промежуточного слоя см. в статьях о работе ботов и ПО промежуточного слоя .
Используйте метод использования адаптера для добавления по промежуточного слоя в адаптер.
processRequest(IReceiveRequest)
Проверяет допустимость запроса и пытается сопоставить его правильную виртуальную конечную точку, а затем создает и возвращает ответ при необходимости.
function processRequest(request: IReceiveRequest): Promise<StreamingResponse>
Параметры
- request
-
IReceiveRequest
ПолучениеRequest из подключенного канала.
Возвращаемое значение
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
Значение, указывающее получателя упреждающего сообщения.</param>
- 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
Аудитория соединителя.
<param name="conversationParameters">- _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