TurnContext class
Fornece contexto para uma vez de um bot.
Comentários
O contexto fornece informações necessárias para processar uma atividade de entrada. O objeto de contexto é criado por um BotAdapter e persiste para o comprimento do turno.
Construtores
Turn |
Cria uma nova instância da classe TurnContext . |
Turn |
Cria uma nova instância da classe TurnContext . |
Propriedades
activity | Obtém a atividade associada a essa vez. |
adapter | Obtém o adaptador de bot que criou esse objeto de contexto. |
buffered |
Lista de atividades a serem enviadas quando |
locale | Obtém a localidade armazenada no turnState. Define a localidade armazenada no turnState. |
responded | Indica se o bot respondeu ao usuário nesta vez. Define o sinalizador de resposta no contexto de turno atual. |
turn |
Obtém os serviços registrados neste objeto de contexto. |
Métodos
apply |
Atualizações uma atividade com as informações de entrega de uma referência de conversa existente. |
delete |
Exclui de forma assíncrona uma atividade enviada anteriormente. |
get |
Copia informações de referência de conversa de uma atividade. |
get |
Obtém todas as entidades de menção incluídas em uma atividade. |
get |
Copia informações de referência de conversa de uma resposta de recurso para uma atividade enviada. |
on |
Adiciona um manipulador de resposta para operações de atividade de exclusão. |
on |
Adiciona um manipulador de resposta para operações de atividade de envio. |
on |
Adiciona um manipulador de resposta para operações de atividade de atualização. |
remove |
Remove em menções para uma determinada ID do texto de uma atividade e retorna o texto atualizado. Use com cuidado; essa função altera a propriedade de texto da atividade. |
remove |
Remove em menções para o destinatário da atividade do texto de uma atividade e retorna o texto atualizado. Use com cuidado; essa função altera a propriedade de texto da atividade. |
send |
Envia de forma assíncrona um conjunto de atividades para o remetente da atividade de entrada. |
send |
Envia de forma assíncrona uma atividade para o remetente da atividade de entrada. |
send |
Envia de forma assíncrona uma atividade para o remetente da atividade de entrada. |
update |
Atualiza de forma assíncrona uma atividade enviada anteriormente. |
Detalhes do construtor
TurnContext(BotAdapter, Partial<Activity>)
Cria uma nova instância da classe TurnContext .
new TurnContext(adapterOrContext: BotAdapter, request: Partial<Activity>)
Parâmetros
- adapterOrContext
- BotAdapter
O adaptador que cria o contexto.
- request
-
Partial<Activity>
A atividade de entrada para o turno.
TurnContext(TurnContext)
Cria uma nova instância da classe TurnContext .
new TurnContext(adapterOrContext: TurnContext)
Parâmetros
- adapterOrContext
- TurnContext
O adaptador que cria o contexto.
Detalhes da propriedade
activity
Obtém a atividade associada a essa vez.
Activity activity
Valor da propriedade
Activity
A atividade associada a esse turno.
Comentários
Este exemplo mostra como obter o enunciado cortado dos usuários da atividade:
const utterance = (context.activity.text || '').trim();
adapter
Obtém o adaptador de bot que criou esse objeto de contexto.
BotAdapter adapter
Valor da propriedade
O adaptador de bot que criou esse objeto de contexto.
bufferedReplyActivities
Lista de atividades a serem enviadas quando context.activity.deliveryMode == 'expectReplies'
.
bufferedReplyActivities: Partial<Activity>[]
Valor da propriedade
Partial<Activity>[]
locale
Obtém a localidade armazenada no turnState. Define a localidade armazenada no turnState.
string | undefined locale
Valor da propriedade
string | undefined
A localidade armazenada no turnState.
responded
Indica se o bot respondeu ao usuário nesta vez. Define o sinalizador de resposta no contexto de turno atual.
boolean responded
Valor da propriedade
boolean
True se pelo menos uma resposta foi enviada para a curva atual; caso contrário, false.
Comentários
true se pelo menos uma resposta foi enviada para o turno atual; caso contrário, false. Use isso para determinar se o bot precisa executar a lógica de fallback após outro processamento normal.
As atividades de rastreamento não definem esse sinalizador.
Por exemplo:
await routeActivity(context);
if (!context.responded) {
await context.sendActivity(`I'm sorry. I didn't understand.`);
}
turnState
Obtém os serviços registrados neste objeto de contexto.
TurnContextStateCollection turnState
Valor da propriedade
Os serviços registrados neste objeto de contexto.
Comentários
Middleware, outros componentes e serviços normalmente usarão isso para armazenar em cache as informações que podem ser solicitadas por um bot várias vezes durante um turno. Você pode usar esse cache para passar informações entre os componentes do bot.
Por exemplo:
const cartKey = Symbol();
const cart = await loadUsersShoppingCart(context);
context.turnState.set(cartKey, cart);
Dica
Ao criar um middleware ou um componente de terceiros, use um símbolo exclusivo para sua chave de cache para evitar colisões de nomenclatura de estado com o bot ou outro middleware ou componentes.
Detalhes do método
applyConversationReference(Partial<Activity>, Partial<ConversationReference>, boolean)
Atualizações uma atividade com as informações de entrega de uma referência de conversa existente.
static function applyConversationReference(activity: Partial<Activity>, reference: Partial<ConversationReference>, isIncoming?: boolean): Partial<Activity>
Parâmetros
- activity
-
Partial<Activity>
A atividade a ser atualizada.
- reference
-
Partial<ConversationReference>
A referência de conversa da qual copiar informações de entrega.
- isIncoming
-
boolean
Opcional.
true
para tratar a atividade como uma atividade de entrada, em que o bot é o destinatário; caso contrário, false
. O padrão é false
e a atividade mostrará o bot como o remetente.
Retornos
Partial<Activity>
Essa atividade, atualizada com as informações de entrega.
Comentários
Chame o método getConversationReference em uma atividade de entrada para obter uma referência de conversa que você pode usar para atualizar uma atividade de saída com as informações de entrega corretas.
deleteActivity(string | Partial<ConversationReference>)
Exclui de forma assíncrona uma atividade enviada anteriormente.
function deleteActivity(idOrReference: string | Partial<ConversationReference>): Promise<void>
Parâmetros
- idOrReference
-
string | Partial<ConversationReference>
ID ou referência de conversa para a atividade a ser excluída.
Retornos
Promise<void>
Uma promessa que representa a operação assíncrona.
Comentários
Se uma ID for especificada, a referência de conversa para a solicitação atual será usada para obter o restante das informações necessárias.
Por exemplo:
const matched = /approve (.*)/i.exec(context.activity.text);
if (matched) {
const savedId = await approveExpenseReport(matched[1]);
await context.deleteActivity(savedId);
}
Consulte também
getConversationReference(Partial<Activity>)
Copia informações de referência de conversa de uma atividade.
static function getConversationReference(activity: Partial<Activity>): Partial<ConversationReference>
Parâmetros
- activity
-
Partial<Activity>
A atividade da qual obter as informações.
Retornos
Partial<ConversationReference>
Uma referência de conversa para a conversa que contém essa atividade.
Comentários
Você pode salvar a referência de conversa como um objeto JSON e usá-la posteriormente para enviar mensagens proativas ao usuário.
Por exemplo:
const reference = TurnContext.getConversationReference(context.request);
Consulte também
getMentions(Partial<Activity>)
Obtém todas as entidades de menção incluídas em uma atividade.
static function getMentions(activity: Partial<Activity>): Mention[]
Parâmetros
- activity
-
Partial<Activity>
A atividade.
Retornos
Mention[]
Todas as entidades de menção incluídas em uma atividade.
Comentários
A propriedade de entidades da atividade contém uma lista simples de objetos de metadados pertencentes a essa atividade e pode conter entidades de menção . Esse método retorna todas essas entidades para uma determinada atividade.
Por exemplo:
const mentions = TurnContext.getMentions(turnContext.request);
getReplyConversationReference(Partial<Activity>, ResourceResponse)
Copia informações de referência de conversa de uma resposta de recurso para uma atividade enviada.
static function getReplyConversationReference(activity: Partial<Activity>, reply: ResourceResponse): Partial<ConversationReference>
Parâmetros
- activity
-
Partial<Activity>
A atividade enviada.
- reply
-
ResourceResponse
A resposta do recurso para a atividade, retornada pelo método sendActivity ou sendActivities .
Retornos
Partial<ConversationReference>
Uma ConversationReference que pode ser armazenada e usada posteriormente para excluir ou atualizar a atividade.
Comentários
Você pode salvar a referência de conversa como um objeto JSON e usá-la posteriormente para atualizar ou excluir a mensagem.
Por exemplo:
var reply = await context.sendActivity('Hi');
var reference = TurnContext.getReplyConversationReference(context.activity, reply);
Consulte também
onDeleteActivity(DeleteActivityHandler)
Adiciona um manipulador de resposta para operações de atividade de exclusão.
function onDeleteActivity(handler: DeleteActivityHandler): this
Parâmetros
- handler
- DeleteActivityHandler
O manipulador a ser adicionado ao objeto de contexto.
Retornos
this
O objeto de contexto atualizado.
Comentários
Esse método retorna uma referência ao objeto de contexto de turno.
Quando o método deleteActivity é chamado, os manipuladores registrados são chamados na ordem em que foram adicionados ao objeto de contexto antes que a atividade seja excluída.
Este exemplo mostra como escutar e registrar exclusões de atividades.
context.onDeleteActivity(async (ctx, reference, next) => {
// Delete activity
await next();
// Log delete
logDelete(activity);
});
onSendActivities(SendActivitiesHandler)
Adiciona um manipulador de resposta para operações de atividade de envio.
function onSendActivities(handler: SendActivitiesHandler): this
Parâmetros
- handler
- SendActivitiesHandler
O manipulador a ser adicionado ao objeto de contexto.
Retornos
this
O objeto de contexto atualizado.
Comentários
Esse método retorna uma referência ao objeto de contexto turn.
Quando o método sendActivity ou sendActivities é chamado, os manipuladores registrados são chamados na ordem em que foram adicionados ao objeto de contexto antes que as atividades sejam enviadas.
Este exemplo mostra como escutar e registrar atividades de saída message
.
context.onSendActivities(async (ctx, activities, next) => {
// Log activities before sending them.
activities.filter(a => a.type === 'message').forEach(a => logSend(a));
// Allow the send process to continue.
next();
});
onUpdateActivity(UpdateActivityHandler)
Adiciona um manipulador de resposta para operações de atividade de atualização.
function onUpdateActivity(handler: UpdateActivityHandler): this
Parâmetros
- handler
- UpdateActivityHandler
O manipulador a ser adicionado ao objeto de contexto.
Retornos
this
O objeto de contexto atualizado.
Comentários
Esse método retorna uma referência ao objeto de contexto turn.
Quando o método updateActivity é chamado, os manipuladores registrados são chamados na ordem em que foram adicionados ao objeto de contexto antes que a atividade seja atualizada.
Este exemplo mostra como escutar e registrar atualizações de atividades.
context.onUpdateActivity(async (ctx, activity, next) => {
// Replace activity
await next();
// Log update
logUpdate(activity);
});
removeMentionText(Partial<Activity>, string)
Remove em menções para uma determinada ID do texto de uma atividade e retorna o texto atualizado. Use com cuidado; essa função altera a propriedade de texto da atividade.
static function removeMentionText(activity: Partial<Activity>, id: string): string
Parâmetros
- activity
-
Partial<Activity>
A atividade a ser removida em menções de.
- id
-
string
A ID do usuário ou bot para o qual remover em menções.
Retornos
string
O texto da atividade atualizada.
Comentários
Alguns canais, por exemplo, Microsoft Teams, adicionam menções ao texto de uma atividade de mensagem.
Use esse método auxiliar para modificar a propriedade de texto da atividade. Ele remove todas as menções para o bot ou iD de usuário fornecido e, em seguida, retorna o valor da propriedade atualizada.
Por exemplo, quando você remove menções de echoBot de uma atividade que contém o texto "@echoBot Hi Bot", o texto da atividade é atualizado e o método retorna "Oi Bot".
O formato de uma entidade de menção depende do canal. No entanto, a propriedade de texto da menção deve conter o texto exato para o usuário como ele aparece no texto da atividade.
Por exemplo, se o canal usa "nome de usuário" ou "@username", essa cadeia de caracteres está no texto da atividade e esse método removerá todas as ocorrências dessa cadeia de caracteres do texto.
Por exemplo:
const updatedText = TurnContext.removeMentionText(activity, activity.recipient.id);
Consulte também
removeRecipientMention(Partial<Activity>)
Remove em menções para o destinatário da atividade do texto de uma atividade e retorna o texto atualizado. Use com cuidado; essa função altera a propriedade de texto da atividade.
static function removeRecipientMention(activity: Partial<Activity>): string
Parâmetros
- activity
-
Partial<Activity>
A atividade a ser removida em menções de.
Retornos
string
O texto da atividade atualizada.
Comentários
Alguns canais, por exemplo, Microsoft Teams, adicionam detalhes de menção ao texto de uma atividade de mensagem.
Use esse método auxiliar para modificar a propriedade de texto da atividade. Ele remove todas as menções do destinatário da atividade e retorna o valor da propriedade atualizada.
Por exemplo:
const updatedText = TurnContext.removeRecipientMention(turnContext.request);
Consulte também
sendActivities(Partial<Activity>[])
Envia de forma assíncrona um conjunto de atividades para o remetente da atividade de entrada.
function sendActivities(activities: Partial<Activity>[]): Promise<ResourceResponse[]>
Parâmetros
- activities
-
Partial<Activity>[]
As atividades a serem enviadas.
Retornos
Promise<ResourceResponse[]>
Uma promessa com um ResourceResponse.
Comentários
Se as atividades forem enviadas com êxito, resultará em uma matriz de objetos ResourceResponse contendo as IDs que o canal de recebimento atribuiu às atividades.
Antes de serem enviadas, as informações de entrega de cada atividade de saída são atualizadas com base nas informações de entrega da atividade de entrada.
Por exemplo:
await context.sendActivities([
{ type: 'typing' },
{ type: 'delay', value: 2000 },
{ type: 'message', text: 'Hello... How are you?' }
]);
Consulte também
sendActivity(string | Partial<Activity>, string, string)
Envia de forma assíncrona uma atividade para o remetente da atividade de entrada.
function sendActivity(activityOrText: string | Partial<Activity>, speak?: string, inputHint?: string): Promise<ResourceResponse | undefined>
Parâmetros
- activityOrText
-
string | Partial<Activity>
A atividade ou o texto a ser enviado.
- speak
-
string
Opcional. O texto a ser falado pelo bot em um canal habilitado para fala.
- inputHint
-
string
Opcional. Indica se o bot está aceitando, esperando ou ignorando a entrada do usuário depois que a mensagem é entregue ao cliente. Um deles: 'acceptingInput', 'ignoringInput' ou 'expectingInput'. O padrão é 'acceptingInput'.
Retornos
Promise<ResourceResponse | undefined>
Uma promessa com um ResourceResponse.
Comentários
Se a atividade for enviada com êxito, resultará em um objeto ResourceResponse contendo a ID que o canal de recebimento atribuiu à atividade.
Consulte a documentação do canal para obter limites impostos ao conteúdo do parâmetro activityOrText .
Para controlar várias características da fala do bot, como voz, taxa, volume, pronúncia e tom, especifique falar no formato SSML (Speech Synthesis Markup Language).
Por exemplo:
await context.sendActivity(`Hello World`);
Consulte também
sendTraceActivity(string, any, string, string)
Envia de forma assíncrona uma atividade para o remetente da atividade de entrada.
function sendTraceActivity(name: string, value?: any, valueType?: string, label?: string): Promise<ResourceResponse | undefined>
Parâmetros
- name
-
string
A atividade ou o texto a ser enviado.
- value
-
any
Opcional. O texto a ser falado pelo bot em um canal habilitado para fala.
- valueType
-
string
Opcional. Indica se o bot está aceitando, esperando ou ignorando o usuário
- label
-
string
Opcional. Indica se o bot está aceitando, esperando ou ignorando o usuário
Retornos
Promise<ResourceResponse | undefined>
Uma promessa com um ResourceResponse.
Comentários
Cria e envia uma atividade trace. As atividades de rastreamento só são enviadas quando o canal é o emulador.
Por exemplo:
await context.sendTraceActivity(`The following exception was thrown ${msg}`);
Consulte também
updateActivity(Partial<Activity>)
Atualiza de forma assíncrona uma atividade enviada anteriormente.
function updateActivity(activity: Partial<Activity>): Promise<ResourceResponse | void>
Parâmetros
- activity
-
Partial<Activity>
A substituição da atividade original.
Retornos
Promise<ResourceResponse | void>
Uma promessa com um ResourceResponse.
Comentários
A ID da atividade de substituição indica a atividade na conversa a ser substituída.
Por exemplo:
const matched = /approve (.*)/i.exec(context.activity.text);
if (matched) {
const update = await approveExpenseReport(matched[1]);
await context.updateActivity(update);
}
Consulte também