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>

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>

Комментарии

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

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

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

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

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>

Комментарии

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

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

Комментарии

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

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