語言

OAuthPrompt 類別

定義

建立新的提示,要求使用者使用 Bot Frameworks 單一登錄 (SSO) 服務登入。

public class OAuthPrompt : Microsoft.Bot.Builder.Dialogs.Dialog
type OAuthPrompt = class
    inherit Dialog
Public Class OAuthPrompt
Inherits Dialog
繼承
OAuthPrompt

備註

提示會嘗試取得使用者目前的令牌,若使用者未登入,會寄送一張包含按鈕的「OAuthCard」,讓使用者按下登入。 視通道而定,使用者將會透過兩個可能的登入流程之一傳送:

- 自動登入流程,使用者登入後,SSO 服務會透過「事件」或「呼叫」活動轉發使用者存取權杖。 - 「魔法碼」流程,使用者登入後,SSO 服務會提示他們傳送六位數的驗證碼給機器人確認身份。 此代碼將作為標準的「訊息」活動發送。

這兩種流程都會自動由「OAuthPrompt」支援,唯一需要注意的是不要封鎖提示可能等待的「事件」和「呼叫」活動。

**注意**:你應該避免讓存取權杖以機器人的其他狀態持續存在。 Bot Frameworks SSO 服務會代表您安全地儲存令牌。 如果您將其儲存在 Bot 中,表示它可能會過期或會在兩次之間撤銷。

從瀑布式步驟中呼叫提示時,您應該在提示之後的步驟內使用令牌,然後讓令牌超出函式結尾的範圍。

### 提示使用

當你的機器人 DialogSet 使用時,你可以直接用 新增一個提示作為命名對話 Add(Dialog)框的實例。 然後,您可以使用 BeginDialogAsync(String, Object, CancellationToken) 或 PromptAsync(String, PromptOptions, CancellationToken),從瀑布式步驟啟動提示。 使用者會被要求按需登入,並以存取權杖作為參數傳遞給呼叫者下一個瀑布步驟。

建構函式

名稱 Description
OAuthPrompt(String, OAuthPromptSettings, PromptValidator<TokenResponse>)

初始化 OAuthPrompt 類別的新執行個體。

屬性

名稱 Description
Id

取得或設定對話的 ID。

(繼承來源 Dialog)
Source

取得 cref=“SourceRange”/> 的資訊。

(繼承來源 Dialog)
TelemetryClient

取得或設定 IBotTelemetryClient 用於記錄。

(繼承來源 Dialog)

方法

名稱 Description
BeginDialogAsync(DialogContext, Object, CancellationToken)

當提示對話框推送至對話堆疊並正在啟動時呼叫。

ContinueDialogAsync(DialogContext, CancellationToken)

當提示對話框是作用中的對話框,且使用者以新的活動回復時呼叫。

EndDialogAsync(ITurnContext, DialogInstance, DialogReason, CancellationToken)

對話框結束時呼叫。

(繼承來源 Dialog)
GetUserTokenAsync(ITurnContext, CancellationToken)

嘗試取得使用者的令牌。

GetVersion()

會得到一個唯一字串,代表該對話框的版本。 如果之間的版本變更,對話系統將會發出 DialogChanged 事件。

(繼承來源 Dialog)
OnComputeId()

建立對話的計算 ID。

(繼承來源 Dialog)
OnDialogEventAsync(DialogContext, DialogEvent, CancellationToken)

使用 DialogContext.emitEvent()引發事件時,由目前對話框或目前對話框啟動的對話框呼叫。

(繼承來源 Dialog)
OnPostBubbleEventAsync(DialogContext, DialogEvent, CancellationToken)

在事件向所有家長泡泡後呼叫,但未處理。

(繼承來源 Dialog)
OnPreBubbleEventAsync(DialogContext, DialogEvent, CancellationToken)

在事件反升至其父系之前呼叫。

(繼承來源 Dialog)
RecognizeTokenAsync(OAuthPromptSettings, DialogContext, CancellationToken)

RecognizeTokenAsync 函式的共享實作。 這是供內部使用,以合併 OAuthPrompt 和 OAuthInput 的實作。 應用程式邏輯應該使用這些對話框類別。

RegisterSourceLocation(String, Int32)

在指定位置註冊 cref=“SourceRange”/> 。

(繼承來源 Dialog)
RepromptDialogAsync(ITurnContext, DialogInstance, CancellationToken)

當對話框應該重新提示使用者輸入時呼叫。

(繼承來源 Dialog)
ResumeDialogAsync(DialogContext, DialogReason, Object, CancellationToken)

當子對話完成此回合時呼叫,將控件傳回此對話方塊。

(繼承來源 Dialog)
SendOAuthCardAsync(OAuthPromptSettings, ITurnContext, IMessageActivity, CancellationToken)

SendOAuthCardAsync 函式的共享實作。 這是供內部使用,以合併 OAuthPrompt 和 OAuthInput 的實作。 應用程式邏輯應該使用這些對話框類別。

SetCallerInfoInDialogState(IDictionary<String,Object>, ITurnContext)

SetCallerInfoInDialogState 函式的共享實作。 這是供內部使用,以合併 OAuthPrompt 和 OAuthInput 的實作。 應用程式邏輯應該使用這些對話框類別。

SignOutUserAsync(ITurnContext, CancellationToken)

註銷使用者。

擴充方法

名稱 Description
RunAsync(Dialog, ITurnContext, IStatePropertyAccessor<DialogState>, CancellationToken)

建立對話堆疊並啟動對話,並將它推送至堆疊。

適用於