OAuthPrompt 类

public class OAuthPrompt
extends Dialog

创建一个新提示,要求用户使用 Bot Frameworks 单一登录 (SSO) 服务登录。 提示将尝试检索用户当前令牌,如果用户未登录,它将向他们发送一个“OAuthCard”,其中包含他们可以按登录的按钮。 根据通道的不同,用户将通过两种可能的登录流之一发送:- 自动登录流,一旦用户登录,SSO 服务将转发机器人,用户使用“事件”或“调用”活动来访问令牌。- “魔术代码”流,用户登录后,SSOservice 将提示他们向机器人发送六位数代码以确认其身份。 此代码将作为标准“message”活动发送。 “OAuthPrompt”自动支持这两个流,唯一需要注意的是,你不会阻止提示可能等待的“事件”和“调用”活动。 **注意**:应避免将访问令牌与机器人保持为其他状态。 Bot FrameworksSSO 服务将代表你安全地存储令牌。 如果将其存储在机器人状态中,则可能会在轮次之间过期或撤销。 从瀑布步骤中调用提示时,应在步骤中使用令牌,然后让令牌超出函数末尾的范围。

构造函数摘要

构造函数 说明
OAuthPrompt(String dialogId, OAuthPromptSettings settings)

初始化 OAuthPrompt 类的新实例。

OAuthPrompt(String dialogId, OAuthPromptSettings settings, PromptValidator<TokenResponse> validator)

初始化 OAuthPrompt 类的新实例。

方法摘要

修饰符和类型 方法和描述
java.util.concurrent.CompletableFuture<DialogTurnResult> beginDialog(DialogContext dc, Object options)

在将提示对话框推送到对话堆栈并被激活时调用。

java.util.concurrent.CompletableFuture<DialogTurnResult> continueDialog(DialogContext dc)

当提示对话为活动对话且用户使用新活动进行回复时调用。

java.util.concurrent.CompletableFuture<TokenResponse> getUserToken(TurnContext turnContext)

尝试获取用户的令牌。

static java.util.concurrent.CompletableFuture<PromptRecognizerResult<TokenResponse>> recognizeToken(OAuthPromptSettings settings, DialogContext dc)

识别令牌函数的共享实现。

static java.util.concurrent.CompletableFuture<java.lang.Void> sendOAuthCard(OAuthPromptSettings settings, TurnContext turnContext, Activity prompt)

SendOAuthCard 函数的共享实现。

static void setCallerInfoInDialogState(Map<String,Object> state, TurnContext context)

SetCallerInfoInDialogState 函数的共享实现。

java.util.concurrent.CompletableFuture<java.lang.Void> signOutUser(TurnContext turnContext)

注销用户。

方法继承自 Dialog

方法继承自 java.lang.Object

java.lang.Object.clone java.lang.Object.equals java.lang.Object.finalize java.lang.Object.getClass java.lang.Object.hashCode java.lang.Object.notify java.lang.Object.notifyAll java.lang.Object.toString java.lang.Object.wait java.lang.Object.wait java.lang.Object.wait

构造函数详细信息

OAuthPrompt

public OAuthPrompt(String dialogId, OAuthPromptSettings settings)

初始化 OAuthPrompt 类的新实例。

Parameters:

dialogId - 要分配给此提示的 D。
settings - 要与提示的此实例一起使用的其他 OAuth 设置。
              The value of <xref uid="" data-throw-if-not-resolved="false" data-raw-source="dialogId"></xref> must be unique within the
              <xref uid="com.microsoft.bot.dialogs.DialogSet" data-throw-if-not-resolved="false" data-raw-source="DialogSet"></xref> or <xref uid="com.microsoft.bot.dialogs.ComponentDialog" data-throw-if-not-resolved="false" data-raw-source="ComponentDialog"></xref> to which the
              prompt is added.

OAuthPrompt

public OAuthPrompt(String dialogId, OAuthPromptSettings settings, PromptValidator validator)

初始化 OAuthPrompt 类的新实例。

Parameters:

dialogId - 要分配给此提示的 D。
settings - 要与提示的此实例一起使用的其他 OAuth 设置。
validator - 可选为 {@link PromptValidator{FoundChoice}},其中包含对此提示的其他自定义验证。
              The value of <xref uid="" data-throw-if-not-resolved="false" data-raw-source="dialogId"></xref> must be unique within the
              <xref uid="com.microsoft.bot.dialogs.DialogSet" data-throw-if-not-resolved="false" data-raw-source="DialogSet"></xref> or <xref uid="com.microsoft.bot.dialogs.ComponentDialog" data-throw-if-not-resolved="false" data-raw-source="ComponentDialog"></xref> to which the
              prompt is added.

方法详细信息

beginDialog

public CompletableFuture beginDialog(DialogContext dc, Object options)

在将提示对话框推送到对话堆栈并被激活时调用。

Overrides:

OAuthPrompt.beginDialog(DialogContext dc, Object options)

Parameters:

dc - 当前会话轮次的对话上下文。
options - 可选,要传递给正在启动的提示的其他信息。

Returns:

一个 CompletableFuture ,表示该操作。 如果任务成功,则结果指示提示在提示处理轮次后是否仍然处于活动状态。

continueDialog

public CompletableFuture continueDialog(DialogContext dc)

当提示对话为活动对话且用户使用新活动进行回复时调用。

Overrides:

OAuthPrompt.continueDialog(DialogContext dc)

Parameters:

dc - 当前会话轮次的对话上下文。

Returns:

一个 CompletableFuture ,表示该操作。 如果任务成功,则结果指示对话在对话处理轮次后是否仍然处于活动状态。 提示通常会继续接收用户的回复,直到它接受用户的回复作为提示的有效输入。

getUserToken

public CompletableFuture getUserToken(TurnContext turnContext)

尝试获取用户的令牌。

Parameters:

turnContext - 与用户当前轮次对话的上下文。

Returns:

一个任务,表示排队要执行的工作。
     If the task is successful and user already has a token or the user
     successfully signs in, the result contains the user's token.

recognizeToken

public static CompletableFuture<>> recognizeToken(OAuthPromptSettings settings, DialogContext dc)

RecognizeToken 函数的共享实现。 这供内部使用,用于合并 OAuthPrompt 和 OAuthInput 的实现。 应用程序逻辑应使用这些对话类。

Parameters:

settings - OAuthPromptSettings。
dc - DialogContext。

Returns:

PromptRecognizerResult。

sendOAuthCard

public static CompletableFuture sendOAuthCard(OAuthPromptSettings settings, TurnContext turnContext, Activity prompt)

SendOAuthCard 函数的共享实现。 这供内部使用,用于合并 OAuthPrompt 和 OAuthInput 的实现。 应用程序逻辑应使用这些对话类。

Parameters:

settings - OAuthSettings。
turnContext - TurnContext。
prompt - MessageActivity。

Returns:

一个 CompletableFuture ,表示操作的运算结果。

setCallerInfoInDialogState

public static void setCallerInfoInDialogState(Map state, TurnContext context)

SetCallerInfoInDialogState 函数的共享实现。 这供内部使用,用于合并 OAuthPrompt 和 OAuthInput 的实现。 应用程序逻辑应使用这些对话类。

Parameters:

state - 对话状态。
context - TurnContext。

signOutUser

public CompletableFuture signOutUser(TurnContext turnContext)

注销用户。

Parameters:

turnContext - 与用户当前轮次对话的上下文。

Returns:

一个任务,表示排队要执行的工作。

适用于