互動式 Canvas API 參考資料

互動式 Canvas API 是 JavaScript 程式庫,可供您用於介面 對對話動作使用 interactiveCanvas 物件。

如要進一步瞭解互動式畫布,請參閱互動式畫布 說明文件

方法

準備好了

ready(callbacks) returns undefined

在載入回呼後,互動式畫布網頁應用程式會呼叫此方法。

參數
callbacks InteractiveCanvasCallbacks

包含方法回呼的物件。

sendTextQuery

sendTextQuery(textQuery) returns Promise<state>

傳送文字查詢到對話動作。

參數
textQuery string

要傳送至對話式動作的查詢。

state string

系統會顯示以下其中一個值:

READY:平台可接受要求。

BLOCKED: 有一個進行中的查詢,將捨棄新查詢。

UNKNOWN: 無法判斷目前的查詢狀態。

getHeaderHeightPx

getHeaderHeightPx() returns Promise<height>

決定螢幕頂端標題的高度。

參數
height number

高度 (以像素為單位)。

outputTts

outputTts(text, openMic) returns undefined;

播放 SSML 文字。

參數
text string

要播放的 SSML 支援字串。

openMic boolean

是否在 TTS 播放後開啟麥克風。

createIntentHandler

createIntentHandler(intentId, callback) returns IntentHandler

為 NLU 自訂意圖建立意圖處理常式。

參數
intentId string

與 Actions Builder 中定義的意圖名稱。

callback function(MatchedIntent)

意圖比對相符時要執行的函式。

IntentHandler object

您可以使用 expect() 註冊意圖處理常式物件。

IntentHandler

代表意圖處理常式的物件。可以使用 expect()prompt() 註冊。

MatchedIntent

包含相符意圖資料的物件。

方法
getIntentArg(parameterName) function(string)

取得相符意圖意圖參數的方法。

createNumberSlot

createNumberSlot(callback, hints?) returns Slot<number>

建立類型號碼的插槽。

參數
callback function(FilledSlot)

供應運算單元時要執行的函式。

hints Hints

使用者在填入版位時可能會說的簡短字詞。hints 協助 NLU 系統決定要填入的插槽。

Slot object

您可以使用 prompt() 註冊的運算單元物件。

createTextSlot

createTextSlot(callback, hints?) returns Slot<string>

建立類型字串的版位。

參數
callback function(FilledSlot)

供應運算單元時要執行的函式。

hints Hints

使用者在填入版位時可能會說的簡短字詞。hints 協助 NLU 系統決定要填入的插槽。

Slot object

您可以使用 prompt() 註冊的運算單元物件。

createConfirmationSlot

createConfirmationSlot(callback, hints?) returns Slot<boolean>

建立布林值類型的版位。

參數
callback function(FilledSlot)

供應運算單元時要執行的函式。

hints Hints

使用者在填入版位時可能會說的簡短字詞。hints 協助 NLU 系統決定要填入的插槽。

Slot object

您可以使用 prompt() 註冊的運算單元物件。

createOptionsSlot

createOptionsSlot(options, callback, hints?) returns Slot<string>

從預先定義的選項清單建立版位。

參數
options array<Option>

供應運算單元時要執行的函式。

callback function(FilledSlot)

供應運算單元時要執行的函式。

hints Hints

使用者在填入版位時可能會說的簡短字詞。hints 協助 NLU 系統決定要填入的插槽。

Slot object

您可以使用 prompt() 註冊的運算單元物件。

運算單元

代表要填入版位的物件。可以使用 expect()prompt() 註冊。

FilledSlot&lt;T&gt;

代表廣告空版位的物件。

參數
T boolean|number|string

版位類型。

選項

代表版位類型項目的物件。

欄位
key string

版位類型項目的專屬 ID。

synonyms array<string>

用於選取運算單元選項的字詞清單。

提示

代表運算單元提示的物件。

欄位
associatedWords array<string>

協助 NLU 系統決定要填入的版位的字詞清單。

預期

expect(expectation) returns HandlerRegistration

在用戶端上註冊預期。可在意圖處理常式和運算單元上呼叫。

參數
expectation IntentHandler|Slot

要註冊的意圖處理常式或運算單元。

HandlerRegistration object

已註冊的意圖處理常式或運算單元。

HandlerRegistration

代表已註冊意圖處理常式的物件。

方法
deleteHandler() function

取消註冊預期的意圖處理常式。

clearExpectations

clearExpectations() returns undefined;

刪除所有先前註冊的意圖處理常式和運算單元,藉此移除所有期望。

提示

prompt(tts, expectation) returns Promise<Answer<T>>

使用提供的 TTS 字串提示使用者,並在用戶端註冊預期結果。可在意圖處理常式和運算單元上呼叫。

參數
tts string

用來提示使用者滿足所提供期望的 TTS 字串。

expectation IntentHandler|Slot

要註冊的意圖處理常式或運算單元。

Answer<T> object

使用者對提示的答案。

答案<T>

此物件代表使用者提供提示的答案。

欄位
value boolean|number|string

使用者提供答案的值。

status string

答案狀態。

系統會顯示以下其中一個值:

ANSWERED: 使用者透過提示回覆了。

NO_MATCH: 系統提示使用者作答,但所回覆的答案與預期答案或其他預期意圖不相符。

YIELD: 使用者以不同的意圖回覆提示。

triggerScene

triggerScene(sceneName) returns Promise<TriggerSceneStatus>

觸發情境。

參數
sceneName string

要觸發的場景名稱。

TriggerSceneStatus string

對 triggerScene() 的呼叫狀態。

系統會顯示以下其中一個值:

SUCCESS: 伺服器已成功處理要求。

BLOCKED::執行中的現有查詢封鎖了這項要求。

UNKNOWN: 要求的狀態不明。

setUserParam

setUserParam(key, value) returns Promise<undefined>;

設定在對話之間傳送及保留的鍵/值組合。

參數
key string

參數鍵。

value object|array|boolean|number|string

參數值。

getUserParam

getUserParam(key) returns Promise<object|array|boolean|number|string>;

取得指定鍵的參數值 (如果存在的話),以及叫用狀態。

參數
key string

參數鍵。

resetUserParam

resetUserParam() returns Promise<void>;

清除所有使用者參數。

setHomeParam

setHomeParam(key, value) returns Promise<undefined>;

設定在對話之間傳送及保留的鍵/值組合。

參數
key string

參數鍵。

value object|array|boolean|number|string

參數值。

getHomeParam

getHomeParam(key) returns Promise<object|array|boolean|number|string>;

取得指定鍵的參數值 (如果存在的話),以及叫用狀態。

參數
key string

參數鍵。

resetHomeParam

resetHomeParam() returns Promise<void>;

清除所有使用者參數。

setCanvasState

setCanvasState(state) returns undefined

通知 Google 助理「畫布」網頁應用程式已更新狀態。 setCanvasState敬上 方法不會傳回值。您可以透過 conv.context.canvas.state 資源。

參數
state Object

以 JSON 物件形式呈現的 Canvas 應用程式更新狀態。

InteractiveCanvasCallbacks

這些回呼可讓您回應資訊或要求 而這些方法可傳送對話訊息 或要求接收對話動作的資訊或要求

onUpdate

onUpdate(data) returns Promise|undefined

從對話動作傳送 Canvas 回應時呼叫。文字轉語音會在下列時間啟動: 傳回的 Promise 已經過解析,或於 10 秒後逾時。

參數
data Object

Webhook 傳送的更新資料。

onTtsMark

onTtsMark(markName) returns undefined

在 TTS 播放期間叫用的回呼。

一律會觸發的特殊標記:

  • START 表示 TTS 的起始值。
  • END 表示 TTS 的結尾。
  • ERROR 表示播放 TTS 時發生錯誤。

您也可以使用 SSML<mark> 標記定義自訂標記,例如: <mark name="custom"/>

參數
markName string

標記在 TTS 播放期間叫用的名稱。

onInputStatusChanged

onInputStatusChanged(inputStatus) returns undefined

通知 Canvas 應用程式,說明 Google 助理輸入狀態已變更。

參數
inputStatus Enum

裝置上的語音和/或文字輸入處理狀態。罐類收納 包括:

  • LISTENING:麥克風已開啟。
  • IDLE:麥克風已關閉。
  • PROCESSING:Google 助理目前正在執行 。