Поделиться через


BotFrameworkAdapter class

Предупреждение

Теперь этот API является нерекомендуемым.

Use CloudAdapter instead.

Extends

BotAdapter

Конструкторы

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

Создает новый экземпляр класса BotFrameworkAdapter .

Свойства

isStreamingConnectionOpen

Используется в контекстах потоковой передачи для проверки того, открыто ли потоковое подключение для бота для отправки действий.

TokenApiClientCredentialsKey

Унаследованные свойства

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

Методы

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

createConnectorClient(string)

Создает клиент соединителя.

createConnectorClientWithIdentity(string, ClaimsIdentity)

Создайте ConnectorClient с ClaimsIdentity.

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

Создайте ConnectorClient с ClaimsIdentity и явной аудиторией.

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

Асинхронно создает и начинает беседу с пользователем в канале.

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

Асинхронно создает и начинает беседу с пользователем в канале.

deleteActivity(TurnContext, Partial<ConversationReference>)

Асинхронно удаляет существующее действие. Этот интерфейс поддерживает платформу и не предназначен для вызова непосредственно для кода. Используйте TurnContext.deleteActivity , чтобы удалить действие из кода бота.

deleteConversationMember(TurnContext, string)

Асинхронно удаляет участника из текущей беседы.

emulateOAuthCards(TurnContext | string, boolean)

Асинхронно отправляет эмулированную карточку OAuth для канала. Этот метод поддерживает платформу и не предназначен для вызова непосредственно для кода.

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

Асинхронно выполняет операцию обмена маркерами, например для единого входа.

getAadTokens(TurnContext, string, string[])

Асинхронный выход пользователя с сервера маркеров.

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

Асинхронно перечисляет члены данного действия.

getConversationMembers(TurnContext)

Асинхронно перечисляет участников текущей беседы.

getConversations(TurnContext | string, string)

Для указанного канала асинхронно получает страницу бесед, в которых принимал участие этот бот.

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

Асинхронно получает ссылку для входа с сервера маркеров, которую можно отправить как часть SigninCard.

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

Асинхронно получает необработанный ресурс входа, который будет отправлен пользователю для входа.

getTokenStatus(TurnContext, string, string)

Асинхронно извлекает состояние маркера для каждого настроенного подключения для данного пользователя.

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

Асинхронно пытается получить маркер для пользователя, который находится в потоке входа.

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

Обработка подключения к веб-сокету путем применения логической функции к каждому запросу потоковой передачи.

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

Обработка веб-запроса путем применения логической функции.

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

Асинхронно создает контекст шага и запускает конвейер ПО промежуточного слоя для входящего действия.

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

Асинхронно создает контекст шага и запускает конвейер ПО промежуточного слоя для входящего действия.

processRequest(IReceiveRequest)

Проверяет допустимость запроса и пытается сопоставить его с правильной виртуальной конечной точкой, а затем при необходимости создает и возвращает ответ.

sendActivities(TurnContext, Partial<Activity>[])

Асинхронно отправляет набор исходящих действий на сервер каналов. Этот метод поддерживает платформу и не предназначен для вызова непосредственно для кода. Используйте метод sendActivity или sendActivities контекста шага из кода бота.

signOutUser(TurnContext, string, string)

Асинхронный выход пользователя с сервера маркеров.

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

Асинхронно заменяет предыдущее действие обновленной версией. Этот интерфейс поддерживает платформу и не предназначен для вызова непосредственно для кода. Используйте TurnContext.updateActivity для обновления действия из кода бота.

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

Подключает обработчик к серверу именованного канала и начинает прослушивать входящие запросы.

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

Обработайте первоначальный запрос, чтобы установить долгосрочное подключение через сервер потоковой передачи.

Наследуемые методы

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

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

Создает беседу в указанном канале.

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

Добавляет ПО промежуточного слоя в конвейер адаптера.

Сведения о конструкторе

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>

Комментарии

Это часто называют упреждающим уведомлением. Бот может заранее отправлять сообщение беседе или пользователю, не дожидаясь входящего сообщения. Например, бот может использовать этот метод для отправки уведомлений или купонов пользователю.

Чтобы отправить упреждающее сообщение, выполните следующее:

  1. Сохраните копию ConversationReference из входящего действия. Например, ссылку на беседу можно сохранить в базе данных.
  2. Вызовите этот метод, чтобы возобновить беседу позже. Используйте сохраненную ссылку для доступа к беседе.
  3. При успешном выполнении адаптер создает объект 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.

Асинхронно получает ссылку для входа с сервера маркеров, которую можно отправить как часть 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>

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-запрос

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>

Комментарии

Это основной способ получения ботом входящих сообщений и определения поворота в беседе. Этот метод выполняет следующее:

  1. Анализирует и проверяет подлинность входящего запроса.
    • Действие считывается из текста входящего запроса. Если не удается проанализировать действие, будет возвращена ошибка.
    • Удостоверение отправителя проходит проверку подлинности как эмулятор или действительный сервер Майкрософт с помощью бота appId и appPassword. Запрос отклоняется, если удостоверение отправителя не проверено.
  2. Создает объект TurnContext для полученного действия.
  3. Отправляет контекст поворота через конвейер ПО промежуточного слоя адаптера.
  4. Отправляет контекст поворота в функцию 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>

Комментарии

Это основной способ получения ботом входящих сообщений и определения поворота в беседе. Этот метод выполняет следующее:

  1. Создает объект TurnContext для полученного действия.
  2. Отправляет контекст поворота через конвейер ПО промежуточного слоя адаптера.
  3. Отправляет контекст шага в функцию 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