總覽 (Dialogflow)

互動式畫布 Canvas 是以 Google 助理建構的架構,可讓開發人員為對話動作新增視覺效果豐富的體驗。這項視覺化體驗是 Google 助理為了回應對話中的使用者而傳送的互動式網頁應用程式。有別於 Google 助理對話中內嵌的傳統豐富回應,互動式 Canvas 網頁應用程式會以全螢幕網頁檢視模式轉譯。

如果想在動作中執行下列任一操作,建議您使用互動式畫布:

  • 製作全螢幕視覺效果
  • 建立自訂動畫和轉場效果
  • 視覺化呈現資料
  • 建立自訂版面配置和 GUI
圖 1.使用互動式畫佈建構的互動式遊戲。

支援的裝置

互動式裝置目前支援下列裝置:

  • 智慧螢幕
  • Google Nest Hub
  • Android 行動裝置 (不含平板電腦)

運作方式

使用互動式畫布的動作,運作方式與一般的對話操作類似。使用者仍可透過 Google 助理進行後置對話,進而達成目標。不過,對話中的 Canvas 動作會傳送回應,開啟全螢幕網頁應用程式,而不是在對話中傳回回覆。使用者會持續透過語音或觸控方式與網頁應用程式互動,直到對話結束為止。

使用互動畫布的「動作」有幾個元件:

  • 對話動作使用對話介面來完成使用者要求的動作。互動式 Canvas 動作會使用網頁檢視畫面來轉譯回應,而非複合式資訊卡或簡單的文字和語音回應。對話動作會使用下列元件:
    • Dialogflow 代理程式:是 Dialogflow 中的專案,您可以自訂要和動作使用者共用的專案。
    • Fulfillment:以 Webhook 形式部署的程式碼,實作 Dialogflow 代理程式的對話邏輯,並與網頁應用程式進行通訊。
  • 網頁應用程式:具有自訂視覺功能的前端網頁應用程式,你的動作會在對話期間回應。您可使用 HTML、JavaScript 和 CSS 等網路標準建構網頁應用程式。

對話動作和網頁應用程式會透過以下方式彼此通訊:

  • Interactive Canvas API在網頁應用程式中加入的 JavaScript API,啟用網頁應用程式與對話動作之間的通訊。
  • HtmlResponse:包含網頁應用程式和資料傳遞的回應。您可以使用 Node.jsJava 用戶端程式庫傳回 HtmlResponse

為了說明互動式畫布的運作方式,請參考名為 Cool Colors 的假設動作,將裝置螢幕的顏色變更為使用者指定的顏色。使用者叫用動作後,流程如下:

  1. 使用者向 Google 助理裝置說「Turn the screen blue」。
  2. Actions on Google 平台會將使用者的要求轉送至 Dialogflow,以便比對意圖。
  3. 相符意圖的執行要求,並將 HtmlResponse 傳送至裝置。如果尚未載入網頁應用程式,裝置會使用網址載入網頁應用程式。
  4. 網頁應用程式載入時,會使用 interactiveCanvas API 註冊回呼。接著,data 物件的值會傳入網頁應用程式的註冊 onUpdate 回呼。在我們的範例中,執行要求中的 data 包含的變數,其變數值為 blueHtmlResponse
  5. 網頁應用程式的自訂邏輯會讀取 HtmlResponsedata 值,並做出已定義的變更。在此範例中,螢幕會轉為藍色。
  6. interactiveCanvas 會將回呼更新傳送至裝置。

後續步驟

如要瞭解如何建構互動式 Canvas 動作,請參閱建構總覽頁面。

如要查看完整的互動式 Canvas Action 的程式碼,請參閱範例