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


ChoiceFactory class

Набор служебных функций для поддержки форматирования действия "сообщения", содержащего список вариантов.

Комментарии

В этом примере показано создание сообщения, содержащего список вариантов, которые были условно отформатированы на основе возможностей базового канала:

const { ChoiceFactory } = require('botbuilder-choices');

const message = ChoiceFactory.forChannel(context, ['red', 'green', 'blue'], `Pick a color.`);
await context.sendActivity(message);

Методы

forChannel(string | TurnContext, string | Choice[], string, string, ChoiceFactoryOptions)

Возвращает действие "сообщение", содержащее список вариантов выбора, который был автоматически отформатирован на основе возможностей заданного канала.

heroCard(string | Choice[], string, string)

Создает сообщение действие, включающее список выбора , добавленный как .

inline(string | Choice[], string, string, ChoiceFactoryOptions)

Возвращает действие "сообщение", содержащее список вариантов, отформатированных как встроенный список.

list(string | Choice[], string, string, ChoiceFactoryOptions)

Возвращает действие "сообщение", содержащее список вариантов, отформатированных как нумерованный или маркированный список.

suggestedAction(string | Choice[], string, string)

Возвращает действие "сообщение", содержащее список вариантов, которые были добавлены в качестве предлагаемых действий.

toChoices(string | Choice[] | undefined)

Принимает смешанный список string и Choice выбор на основе и возвращает их в качестве Choice[].

Сведения о методе

forChannel(string | TurnContext, string | Choice[], string, string, ChoiceFactoryOptions)

Возвращает действие "сообщение", содержащее список вариантов выбора, который был автоматически отформатирован на основе возможностей заданного канала.

static function forChannel(channelOrContext: string | TurnContext, choices: string | Choice[], text?: string, speak?: string, options?: ChoiceFactoryOptions): Partial<Activity>

Параметры

channelOrContext

string | TurnContext

Идентификатор канала или объект контекста для текущего шага беседы.

choices

string | Choice[]

Список вариантов отрисовки.

text

string

(Необязательно) текст сообщения.

speak

string

(Необязательно) SSML для выступления за сообщение.

options
ChoiceFactoryOptions

(Необязательно) параметры форматирования, используемые при отрисовке в виде списка.

Возвращаемое значение

Partial<Activity>

Созданное действие сообщения.

Комментарии

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

Если алгоритм решит использовать список, он будет использовать встроенный список, если есть 3 или меньше вариантов и все имеют короткие заголовки. В противном случае используется нумерованный список.

const message = ChoiceFactory.forChannel(context, [
   { value: 'red', action: { type: 'imBack', title: 'The Red Pill', value: 'red pill' } },
   { value: 'blue', action: { type: 'imBack', title: 'The Blue Pill', value: 'blue pill' } },
], `Which do you choose?`);
await context.sendActivity(message);

heroCard(string | Choice[], string, string)

Создает сообщение действие, включающее список выбора , добавленный как .

static function heroCard(choices?: string | Choice[], text?: string, speak?: string): Activity

Параметры

choices

string | Choice[]

Необязательный. Список выбора .

text

string

Необязательный. Текст сообщения.

speak

string

Необязательный. Текст SSML, который будет говорить бот в канале с поддержкой речи.

Возвращаемое значение

Activity

Действие с вариантами HeroCard с кнопками.

inline(string | Choice[], string, string, ChoiceFactoryOptions)

Возвращает действие "сообщение", содержащее список вариантов, отформатированных как встроенный список.

static function inline(choices: string | Choice[], text?: string, speak?: string, options?: ChoiceFactoryOptions): Partial<Activity>

Параметры

choices

string | Choice[]

Список вариантов отрисовки.

text

string

(Необязательно) текст сообщения.

speak

string

(Необязательно) SSML для выступления за сообщение.

options
ChoiceFactoryOptions

(Необязательно) параметры форматирования для настройки отрисовки списка.

Возвращаемое значение

Partial<Activity>

Созданное действие сообщения.

Комментарии

В этом примере создается текст сообщения "Выбрать цвет: (1. красный, 2. зеленый или 3. синий)":

const message = ChoiceFactory.inline(['red', 'green', 'blue'], `Pick a color:`);
await context.sendActivity(message);

list(string | Choice[], string, string, ChoiceFactoryOptions)

Возвращает действие "сообщение", содержащее список вариантов, отформатированных как нумерованный или маркированный список.

static function list(choices: string | Choice[], text?: string, speak?: string, options?: ChoiceFactoryOptions): Partial<Activity>

Параметры

choices

string | Choice[]

Список вариантов отрисовки.

text

string

(Необязательно) текст сообщения.

speak

string

(Необязательно) SSML для выступления за сообщение.

options
ChoiceFactoryOptions

(Необязательно) параметры форматирования для настройки отрисовки списка.

Возвращаемое значение

Partial<Activity>

Созданное действие сообщения.

Комментарии

В этом примере создается сообщение с выбранными вариантами, представленными в виде нумерованного списка:

const message = ChoiceFactory.list(['red', 'green', 'blue'], `Pick a color:`);
await context.sendActivity(message);

suggestedAction(string | Choice[], string, string)

Возвращает действие "сообщение", содержащее список вариантов, которые были добавлены в качестве предлагаемых действий.

static function suggestedAction(choices: string | Choice[], text?: string, speak?: string): Partial<Activity>

Параметры

choices

string | Choice[]

Список вариантов добавления.

text

string

(Необязательно) текст сообщения.

speak

string

(Необязательно) SSML для выступления за сообщение.

Возвращаемое значение

Partial<Activity>

Действие с выбранными вариантами в качестве предлагаемых действий.

Комментарии

В этом примере создается сообщение с выбранными вариантами, представленными в виде предлагаемых кнопок действий:

const message = ChoiceFactory.suggestedAction(['red', 'green', 'blue'], `Pick a color:`);
await context.sendActivity(message);

toChoices(string | Choice[] | undefined)

Принимает смешанный список string и Choice выбор на основе и возвращает их в качестве Choice[].

static function toChoices(choices: string | Choice[] | undefined): Choice[]

Параметры

choices

string | Choice[] | undefined

Список вариантов добавления.

Возвращаемое значение

Choice[]

Список вариантов.

Комментарии

В этом примере преобразуется простой массив строковых вариантов выбора в правильно отформатированные Choice[].

Если Choice имеет Partial<CardAction> для Choice.action, .toChoices() попытается заполнить Choice.action.

const choices = ChoiceFactory.toChoices(['red', 'green', 'blue']);