OAuthPrompt class
Crée une invite qui demande à l’utilisateur de se connecter à l’aide du service d’authentification unique (SSO) Bot Frameworks.
- Extends
Remarques
L’invite tente de récupérer le jeton actuel des utilisateurs et, si l’utilisateur n’est pas connecté, il lui envoie un OAuthCard
bouton contenant un bouton qu’il peut appuyer pour se connecter. Selon le canal, l’utilisateur est envoyé via l’un des deux flux de connexion possibles :
- Flux de connexion automatique dans lequel une fois que l’utilisateur se connecte et que le service SSO transfère le bot le jeton d’accès des utilisateurs à l’aide d’une
event
activité ouinvoke
. - Flux de « code magique » dans lequel l’endroit où l’utilisateur se connecte, il est invité par le service d’authentification unique à envoyer au bot un code à six chiffres confirmant son identité. Ce code sera envoyé en tant qu’activité standard
message
.
Les deux flux sont automatiquement pris en charge par le OAuthPrompt
et la seule chose dont vous devez faire attention est que vous ne bloquez pas les event
activités et invoke
que l’invite peut attendre.
Notes
Vous devez éviter de conserver le jeton d’accès avec l’autre état de vos bots. Le service Bot Frameworks SSO stocke le jeton en toute sécurité en votre nom. Si vous le stockez dans l’état de vos bots, il peut expirer ou être révoqué entre les tours.
Lorsque vous appelez l’invite à partir d’une étape en cascade, vous devez utiliser le jeton dans l’étape qui suit l’invite, puis laisser le jeton sortir de l’étendue à la fin de votre fonction.
Invite d’utilisation
Lorsqu’il est utilisé avec vos bots, DialogSet
vous pouvez simplement ajouter une nouvelle instance de l’invite en tant que boîte de dialogue nommée à l’aide DialogSet.add()
de . Vous pouvez ensuite démarrer l’invite à partir d’une étape en cascade à l’aide de DialogContext.beginDialog()
ou DialogContext.prompt()
de . L’utilisateur est invité à se connecter en fonction des besoins et son jeton d’accès est passé en tant qu’argument aux appelants à l’étape en cascade suivante :
const { ConversationState, MemoryStorage, OAuthLoginTimeoutMsValue } = require('botbuilder');
const { DialogSet, OAuthPrompt, WaterfallDialog } = require('botbuilder-dialogs');
const convoState = new ConversationState(new MemoryStorage());
const dialogState = convoState.createProperty('dialogState');
const dialogs = new DialogSet(dialogState);
dialogs.add(new OAuthPrompt('loginPrompt', {
connectionName: 'GitConnection',
title: 'Login To GitHub',
timeout: OAuthLoginTimeoutMsValue // User has 15 minutes to login
}));
dialogs.add(new WaterfallDialog('taskNeedingLogin', [
async (step) => {
return await step.beginDialog('loginPrompt');
},
async (step) => {
const token = step.result;
if (token) {
// ... continue with task needing access token ...
} else {
await step.context.sendActivity(`Sorry... We couldn't log you in. Try again later.`);
return await step.endDialog();
}
}
]));
Constructeurs
OAuth |
Crée une instance OAuthPrompt. |
Propriétés
id | ID unique de la boîte de dialogue. Définit l’ID unique de la boîte de dialogue. |
telemetry |
Obtient le client de télémétrie pour cette boîte de dialogue. Définit le client de télémétrie pour cette boîte de dialogue. |
Propriétés héritées
End |
Obtient un résultat de fin de tour par défaut. |
Méthodes
begin |
Appelé lorsqu’une boîte de dialogue d’invite est envoyée dans la pile des dialogues et est en cours d’activation. |
continue |
Appelée lorsqu’une boîte de dialogue d’invite est la boîte de dialogue active et que l’utilisateur a répondu avec une nouvelle activité. |
get |
Tente de récupérer le jeton stocké pour l’utilisateur actuel. |
recognize |
Implémentation partagée de la fonction RecognizeTokenAsync. Ceci est destiné à une utilisation interne, afin de consolider l’implémentation de OAuthPrompt et OAuthInput. La logique d’application doit utiliser ces classes de dialogue. |
send |
Envoie une carte OAuth. |
sign |
Déconnecte l’utilisateur du service. |
Méthodes héritées
configure(Record<string, unknown>) | Méthode Fluent pour configurer l’objet. |
end |
En cas de substitution dans une classe dérivée, effectue le nettoyage de la boîte de dialogue avant sa fin. |
get |
|
get |
Chaîne encodée utilisée pour faciliter la détection des modifications de bot lors du redéploiement. |
on |
Appelé lorsqu’un événement a été déclenché, à l’aide |
reprompt |
En cas de substitution dans une classe dérivée, réexpte l’utilisateur pour l’entrée. |
resume |
En cas de substitution dans une classe dérivée, reprend la boîte de dialogue une fois la boîte de dialogue située au-dessus de celle-ci sur la pile terminée. |
Détails du constructeur
OAuthPrompt(string, OAuthPromptSettings, PromptValidator<TokenResponse>)
Crée une instance OAuthPrompt.
new OAuthPrompt(dialogId: string, settings: OAuthPromptSettings, validator?: PromptValidator<TokenResponse>)
Paramètres
- dialogId
-
string
ID unique de la boîte de dialogue dans son parent DialogSet
ou ComponentDialog
.
- settings
- OAuthPromptSettings
Paramètres utilisés pour configurer l’invite.
- validator
-
PromptValidator<TokenResponse>
Validateur (facultatif) qui sera appelé chaque fois que l’utilisateur répond à l’invite.
Détails de la propriété
id
ID unique de la boîte de dialogue. Définit l’ID unique de la boîte de dialogue.
string id
Valeur de propriété
string
Id de la boîte de dialogue.
Remarques
Celui-ci est automatiquement généré s’il n’est pas spécifié.
telemetryClient
Obtient le client de télémétrie pour cette boîte de dialogue. Définit le client de télémétrie pour cette boîte de dialogue.
BotTelemetryClient telemetryClient
Valeur de propriété
BotTelemetryClient
BotTelemetryClient à utiliser pour la journalisation.
Détails de la propriété héritée
EndOfTurn
Obtient un résultat de fin de tour par défaut.
static EndOfTurn: DialogTurnResult
Valeur de propriété
Remarques
Ce résultat indique qu’un dialogue (ou une étape logique dans un dialogue) a terminé le traitement pour le tour actuel, est toujours actif et attend plus d’entrée.
Hérité deDialog.EndOfTurn
Détails de la méthode
beginDialog(DialogContext, PromptOptions)
Appelé lorsqu’une boîte de dialogue d’invite est envoyée dans la pile des dialogues et est en cours d’activation.
function beginDialog(dc: DialogContext, options?: PromptOptions): Promise<DialogTurnResult>
Paramètres
DialogContext pour le tour actuel de la conversation.
- options
- PromptOptions
facultatif. PromptOptions, informations supplémentaires à transmettre à l’invite en cours de démarrage.
Retours
Promise<DialogTurnResult>
Promise
représentant l’opération asynchrone.
Remarques
Si la tâche réussit, le résultat indique si l’invite est toujours active une fois le tour traité par l’invite.
continueDialog(DialogContext)
Appelée lorsqu’une boîte de dialogue d’invite est la boîte de dialogue active et que l’utilisateur a répondu avec une nouvelle activité.
function continueDialog(dc: DialogContext): Promise<DialogTurnResult>
Paramètres
DialogContext pour le tour actuel de la conversation.
Retours
Promise<DialogTurnResult>
Promise
représentant l’opération asynchrone.
Remarques
Si la tâche réussit, le résultat indique si le dialogue est toujours actif une fois que le tour a été traité par le dialogue. L’invite continue généralement à recevoir les réponses de l’utilisateur jusqu’à ce qu’elle accepte la réponse de l’utilisateur comme entrée valide pour l’invite.
getUserToken(TurnContext, string)
Tente de récupérer le jeton stocké pour l’utilisateur actuel.
function getUserToken(context: TurnContext, code?: string): Promise<TokenResponse | undefined>
Paramètres
- context
-
TurnContext
Le contexte référence l’utilisateur recherché.
- code
-
string
(Facultatif) code de connexion reçu de l’utilisateur.
Retours
Promise<TokenResponse | undefined>
Réponse du jeton.
recognizeToken(DialogContext)
Implémentation partagée de la fonction RecognizeTokenAsync. Ceci est destiné à une utilisation interne, afin de consolider l’implémentation de OAuthPrompt et OAuthInput. La logique d’application doit utiliser ces classes de dialogue.
function recognizeToken(dc: DialogContext): Promise<PromptRecognizerResult<TokenResponse>>
Paramètres
DialogContext pour le tour actuel de la conversation.
Retours
Promise<PromptRecognizerResult<TokenResponse>>
Une promesse qui se résout au résultat
sendOAuthCard(OAuthPromptSettings, TurnContext, string | Partial<Activity>)
Envoie une carte OAuth.
static function sendOAuthCard(settings: OAuthPromptSettings, turnContext: TurnContext, prompt?: string | Partial<Activity>): Promise<void>
Paramètres
- settings
- OAuthPromptSettings
Paramètres OAuth.
- turnContext
-
TurnContext
Retournez le contexte.
- prompt
-
string | Partial<Activity>
Activité de message.
Retours
Promise<void>
signOutUser(TurnContext)
Déconnecte l’utilisateur du service.
function signOutUser(context: TurnContext): Promise<void>
Paramètres
- context
-
TurnContext
Contexte référençant l’utilisateur en cours de déconnexion.
Retours
Promise<void>
Promesse représentant l’opération asynchrone.
Remarques
Cet exemple montre comment créer une instance de l’invite, puis déconnecter l’utilisateur.
const prompt = new OAuthPrompt({
connectionName: 'GitConnection',
title: 'Login To GitHub'
});
await prompt.signOutUser(context);
Détails de la méthode héritée
configure(Record<string, unknown>)
Méthode Fluent pour configurer l’objet.
function configure(config: Record<string, unknown>): this
Paramètres
- config
-
Record<string, unknown>
Paramètres de configuration à appliquer.
Retours
this
Configurable une fois l’opération terminée.
Hérité deConfigurable.configure
endDialog(TurnContext, DialogInstance, DialogReason)
En cas de substitution dans une classe dérivée, effectue le nettoyage de la boîte de dialogue avant sa fin.
function endDialog(_context: TurnContext, _instance: DialogInstance, _reason: DialogReason): Promise<void>
Paramètres
- _context
-
TurnContext
Objet de contexte pour le tour.
- _instance
- DialogInstance
Informations d’état actuel pour cette boîte de dialogue.
- _reason
- DialogReason
Raison pour laquelle la boîte de dialogue se termine.
Retours
Promise<void>
Remarques
Les boîtes de dialogue dérivées qui doivent effectuer la journalisation ou le nettoyage avant de se terminer doivent remplacer cette méthode. Par défaut, cette méthode n’a aucun effet.
DialogContext appelle cette méthode lorsque le dialogue actuel se termine.
Voir aussi
Hérité deDialog.endDialog
getConverter(string)
function getConverter(_property: string): Converter | ConverterFactory
Paramètres
- _property
-
string
Clé de la configuration du sélecteur conditionnel.
Retours
Convertisseur pour la configuration du sélecteur.
Hérité deConfigurable.getConverter
getVersion()
Chaîne encodée utilisée pour faciliter la détection des modifications de bot lors du redéploiement.
function getVersion(): string
Retours
string
Chaîne unique qui ne doit changer que lorsque la boîte de dialogue a changé d’une manière qui doit redémarrer le dialogue.
Remarques
Cela renvoie par défaut l’ID de boîte de dialogue, mais peut être remplacé pour fournir une logique de détection des modifications plus précise. Toute boîte de dialogue sur la pile dont la version est modifiée entraîne la levée d’un versionChanged
événement. Si cet événement n’est pas géré par le bot, une erreur est générée, ce qui entraîne l’exécution de la logique du gestionnaire d’erreurs des bots.
Le renvoi d’une chaîne vide désactive le suivi de version pour le composant.
Hérité deDialog.getVersion
onDialogEvent(DialogContext, DialogEvent)
Appelé lorsqu’un événement a été déclenché, à l’aide DialogContext.emitEvent()
de , par la boîte de dialogue active ou par un dialogue que le dialogue actuel a démarré.
function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>
Paramètres
Contexte de boîte de dialogue pour la tournure actuelle de la conversation.
Événement déclenché.
Retours
Promise<boolean>
True si l’événement est géré par la boîte de dialogue active et que le bouillonnement doit s’arrêter.
Hérité deDialog.onDialogEvent
repromptDialog(TurnContext, DialogInstance)
En cas de substitution dans une classe dérivée, réexpte l’utilisateur pour l’entrée.
function repromptDialog(_context: TurnContext, _instance: DialogInstance): Promise<void>
Paramètres
- _context
-
TurnContext
Objet de contexte pour le tour.
- _instance
- DialogInstance
Informations d’état actuel pour cette boîte de dialogue.
Retours
Promise<void>
Remarques
Les boîtes de dialogue dérivées qui prennent en charge la logique de validation et de nouvelle invite doivent remplacer cette méthode. Par défaut, cette méthode n’a aucun effet.
DialogContext appelle cette méthode lorsque la boîte de dialogue actuelle doit re-demander l’entrée à l’utilisateur. Cette méthode est implémentée pour les boîtes de dialogue d’invite.
Voir aussi
Hérité deDialog.repromptDialog
resumeDialog(DialogContext, DialogReason, any)
En cas de substitution dans une classe dérivée, reprend la boîte de dialogue une fois la boîte de dialogue située au-dessus de celle-ci sur la pile terminée.
function resumeDialog(dc: DialogContext, reason: DialogReason, result?: any): Promise<DialogTurnResult>
Paramètres
Contexte du tour de dialogue actuel.
- reason
- DialogReason
Raison pour laquelle la boîte de dialogue reprend. Il s’agit généralement de DialogReason.endCalled
- result
-
any
facultatif. Valeur de retour, le cas échéant, de la boîte de dialogue qui s’est terminée.
Retours
Promise<DialogTurnResult>
Promesse résolvant le résultat du tour de dialogue.
Remarques
Les dialogues dérivés qui prennent en charge les conversations à plusieurs tours doivent remplacer cette méthode. Par défaut, cette méthode signale que la boîte de dialogue est terminée et retourne.
Le DialogContext appelle cette méthode lorsqu’il reprend la boîte de dialogue. Si la boîte de dialogue précédente sur la pile a retourné une valeur, cette valeur se trouve dans le result
paramètre .
Pour démarrer un dialogue enfant , utilisez DialogContext.beginDialog ou DialogContext.prompt ; toutefois, ce dialogue ne sera pas nécessairement celui qui a démarré le dialogue enfant. Pour signaler au contexte de dialogue que ce dialogue est terminé, attendez DialogContext.endDialog avant de quitter cette méthode.
Voir aussi
Hérité deDialog.resumeDialog