使用 Action Builder 打造 Google 助理的動作 (第 2 級)

1. 總覽

Google 助理開發人員平台可讓你建立軟體,將 Google 助理 (虛擬個人助理) 的功能拓展至超過 10 億個裝置,包括智慧型揚聲器、手機、汽車、電視、耳罩式耳機等。使用者會透過 Google 助理參與對話,完成各項工作,例如購買食品雜貨或叫車。開發人員可以使用 Google 助理開發人員平台,輕鬆建立並管理能滿足使用者需求的第三方服務,享受輕鬆愉快的對話體驗。

本程式碼研究室涵蓋使用 Google 助理進行開發的中級概念,並以第 1 級程式碼研究室中建立的動作為基礎。強烈建議您先完成第 1 級程式碼研究室,再開始本計畫。

您在這個程式碼研究室中建立的動作,可以根據使用者選擇的輔助,告知他們他們在神秘之地 Gryffinberg 的任務。

建構項目

在這個程式碼研究室中,您可以使用下列函式建立精密的對話動作:

  • 從使用者收集資料,並根據對話價值修改對話提示
  • 透過後續問題回覆,進一步提升對話品質
  • 建立遊戲迴圈,讓使用者在收到《財富》後就能再次與「動作」互動

在開始建構之前,您可以先說出「Ok Google,與 Fate 和 Fortune」對支援 Google 助理的裝置進行即時「操作」互動。回訪者在「此動作」中的預設路徑看起來會像這樣:

dd6f5c61296b8b50.png

eba043f546aa8c51.png

課程內容

  • 如何使用版位收集使用者的資料
  • 如何使用條件為場景新增邏輯
  • 如何新增遊戲迴圈
  • 如何新增支援路徑

軟硬體需求

此程式碼研究室的必備條件如下:

我們極力建議您熟悉 JavaScript (ES6),以便瞭解這個程式碼研究室的執行代碼。

2. 繼續建構對話式介面

第一個程式碼研究室中,您建立了了一個簡單的對話動作,其中包含單一場景 Start

在這個程式碼研究室中,你可以延長動作的對話。在下列各節中,您可以將動作設為執行以下作業:

  • 在使用者嘗試收聽自己的命運時,轉換至新的 Fortune 場景
  • 向使用者詢問他們想為旅程選擇了哪些援助
  • 根據使用者的選擇提供不同的幸運

建立Fortune情境

在本節中,您會建立 Fortune 場景並定義使用者在對話中轉換的方式。

如要建立名為 Fortune 的新場景,請按照下列步驟操作:

  1. 開啟程式碼研究室 1 級操作專案。
  2. 按一下導覽列中的 [開發]
  3. 按一下「場景」下方的 [開始] 場景。
  4. 按一下 [yes] (是) 意圖 ([當「是」符合項目時] 方塊) 即可開啟選項。
  5. 清除 [傳送提示] 即可移除提示。
  6. 在「轉換」部分中,按一下下拉式選單,按一下文字方塊,然後輸入 Fortune
  7. 按一下 [新增]。這會建立名為 Fortune 的新場景。它也在用於聽取他們的負幣的情況下添加了Start場景中的Fortune場景。

56682a0c7459b98c.png

定義 Fortune 情境的對話邏輯

在這個程式碼研究室中,您設定了 Fortune 場景以詢問使用者:「您選擇什麼方式來協助您完成任務、龍、翻譯器或指南針部署;繼續進行前,您可以先使用版位填滿功能向使用者收集必要資訊。

你的動作提供 3 種藥房的命運:龍、譯者和指南針。如要設定動作以識別使用者輸入內容中的三個選項,您必須建立新的類型

您可使用一個場景版位供應階段中的類型來定義使用者需要的資訊。當 NLU 引擎偵測到使用者輸入內容中的運算單元比對時,就會擷取輸入類型的版位,方便您在場景中運用該邏輯進行邏輯。

建立「available_options」類型

在本節中,您會建立一個名為 available_options 的新類型,指定使用者可按照提示選擇三種選項 (龍、譯者和指南針)。此外,您也可以為這些選項定義一些同義詞,以因應使用者所說的內容相似。在後續部分,您將 available_options 類型新增至版位,以指定您想取得使用者的選擇。

如要建立 available_options 類型,請按照下列步驟操作:

  1. 在導覽列中,按一下 [類型]
  2. 按一下 [+] (加號) 並輸入 available_options,然後按下 Enter
  3. 按一下 available_options 開啟選項。

類型設定為鍵/值組合資訊,其中「key」是類型的名稱,而「values」則是該鍵的同義詞。在您定義鍵時,系統會自動將該鍵新增為值。

如要新增使用者可選擇的三個選項,請按照下列步驟操作:

  1. 捲動至「新增項目」部分。
  2. 在 [New entry] 欄位中輸入 dragon,然後按下 Enter。這項操作會建立 dragon 鍵。
  3. 在「新增值」欄位中輸入「hydra」,然後按下 Enter 即可將該值新增為值 (匿名)。然後,針對「lizard」值重複這個步驟。
  4. 請新增其他索引鍵和對應的值:
  • translator | translatorcommunicatormachinedecodertranslate
  • compass | compassdirectionguide

8333b1b67445f21.png

  1. 按一下 [儲存]

你的動作現在可以瞭解 available_options 是龍、譯者和指南針,也能辨識出幾個同義詞。

設定運算單元供應

接著,您需要在 Fortune 場景中設定版位供應作業。如要設定運算單元填充邏輯,請按照下列步驟操作:

  1. 在導覽列的「場景」下方,按一下 [幸運金]
  2. Fortune 場景中,按一下「+」(加號) 來插入版位。
  3. 在 [輸入版位名稱] 欄位中,新增 chosenOptions 做為運算單元名稱。
  4. 在 [Select type] (選取類型) 下拉式清單中,選取 [available_options] 做為版位類型。
  5. 勾選 [這個版位為必填] 核取方塊。

a461b906476e244.png

  1. 選取 [傳送提示],然後新增下列訊息和建議方塊:
candidates:
  - first_simple:
      variants:
        - speech: >-
            What do you choose to help you on your quest, a dragon, a
            translator, or a compass?
    suggestions:
      - title: 'Dragon'
      - title: 'Translator'
      - title: 'Compass'
  1. 按一下 [儲存]

您已經將 available_options 類型加入時段中,如此一來,您的動作就可以取得您需要的資訊 (使用者提供的輔助資訊),然後再繼續。您也可以在版位內設定提示,當使用者到達場景的填充階段時,系統就會將該提示加入提示佇列中。

請注意,當您將版位命名為 chosenOptions 時,[自訂版位值寫入名稱] 欄位會更新為相同的名稱 ($session.params.chosenOptions)。您可以在 Action Builder 中,以這個名稱來使用這個參數,也可透過用戶端程式庫取得執行要求。

設定 scene.slots.status == "FINAL" 條件

新增版位後,條件 scene.slots.status == "FINAL" 就會自動加到條件清單中。

條件 scene.slots.status == "FINAL" 會檢查版位供應情況是否完成。當所有運算單元已填入完畢時,條件可以觸發 Webhook、轉換至新的場景,或者在提示佇列中新增提示。

在這個部分中,您會設定 scene.slots.status == "FINAL",在運算單元填入完成後,於提示佇列中新增提示。

如要將此提示新增至 FINAL 條件,請按照下列步驟操作:

  1. 按一下 scene.slots.status == "FINAL" 開啟選項視窗。
  2. 選取 [傳送提示],然後新增下列提示:
candidates:
  - first_simple:
      variants:
        - speech: You picked $session.params.chosenOptions.
  1. 按一下 [儲存]

在模擬工具中測試您的操作

在這個階段,您已定義了要讓使用者填補版位。從使用者取得這項資訊後,您的動作應提示他們參照他們選擇的特定選項。

如要測試動作,請按照下列步驟操作:

  1. 按一下導覽列中的 [測試]
  2. 在 [輸入] 欄位中按一下或輸入 Talk to my test app,然後按下 Enter
  3. 在「輸入」欄位中輸入 Yes,然後按下 Enter。(您也可以按一下 [是] 建議方塊)。

a899d45c542668f6.png

  1. 點擊、輸入或說出dragon。您應該會看到以下提示:“您挑選了龍。

在下一個部分中,您可以自訂使用者可以選取的每一項提示。

使用條件自訂提示

在本節中,您可以為使用者為每個選項新增條件,以及為每個條件新增自訂提示。

自訂 dragon 運勢

如要更新條件並自訂使用者選擇「龍狀」的提示,請按照下列步驟操作:

  1. 按一下導覽列中的 [開發]
  2. 在導覽列中,按一下 [Fortune] 場景。
  3. 按一下 scene.slots.status == "FINAL" 開啟選項視窗。
  4. 將條件陳述式更新為:scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
  5. 選取 [傳送提示]
  6. 在程式碼編輯器中,按照下列指示更新提示:
candidates:
  - first_simple:
      variants:
        - speech: >-
            The people of Gryffinberg will be awestruck by the beauty and power
            of the ancient dragon. Much to your dismay, the townspeople fall
            into dispute over who will receive the honor of riding the dragon
            first. You return home from your quest without everlasting glory or
            a dragon.
  1. 按一下 [儲存]

d31767232ad908bd.png

現在,當使用者說出「“dragt;dragon”」或類似內容時,您的「動作」會根據選取的項目提供變化。接著,請新增其餘兩個選項。

自訂 translator 運勢

如要新增條件,並在使用者選擇「翻譯工具」時自訂提示,請按照下列步驟操作:

  1. 按一下「條件」旁邊的 [+]
  2. scene.slots.status == "FINAL" && session.params.chosenOptions == "translator" 新增至 else if 欄位。
  3. 選取 [傳送提示]
  4. 在程式碼編輯器中新增下列提示:
candidates:
  - first_simple:
      variants:
        - speech: >-
            With the help of the translator, the rival factions in Gryffinberg
            are finally able to communicate with each other and resolve their
            disputes. You will complete your quest to restore peace in the town.
            The translator will be used on many subsequent journeys across the
            earth. After its work is done, it retires honorably to a premier
            location in the Gryffinberg History Museum.
  1. 按一下 [儲存]

c1af65e70dbf3dfe.png

自訂 compass 運勢

如要新增條件,並在使用者選擇「指南針」時自訂提示,請按照下列步驟操作:

  1. 按一下「條件」旁邊的 [+] (加號)。
  2. scene.slots.status == "FINAL" && session.params.chosenOptions == "compass" 新增至 else if 文字方塊。
  3. 選取 [傳送提示]
  4. 在程式碼編輯器中新增下列提示:
candidates:
  - first_simple:
      variants:
        - speech: >-
            The compass will help you find the mystical and ancient Library of
            Gryffinberg. Among its infinite stacks of dusty books, you find one
            entitled "Wisdom of the Ages". By the time you've read the
            50,000-page tome, the townspeople have forgotten their problems. You
            will write a second edition of "Wisdom of the Ages", but have
            limited commercial success.
  1. 按一下 [儲存]

在模擬工具中測試您的操作

此時,您的動作應根據使用者選取的選項,提供自訂幸運金。

如要測試動作,請按照下列步驟操作:

  1. 按一下導覽列中的 [測試]
  2. 在「輸入」欄位中輸入 Talk to my test app,然後按下 Enter
  3. 在「輸入」欄位中輸入 Yes,然後按下 Enter。您也可以點選 [是] 建議方塊。
  4. 點擊、輸入或說出Translator

29e17f950bd0dd71.png

您應該會看到適當的「翻譯者」選項。

3. 新增遊戲迴圈

在這個部分中,您可以設定動作,讓使用者選取另一個選項,並在做出選擇後聽到不同的運勢。這項變更與遊戲結束時的「你想要再玩一次升級設定」訊息類似。如要建構這個迴圈,您可以重複使用先前建立的 yesno 意圖,並將這些意圖新增至名為 Again 的新場景。

建立Again情境

在這個部分中,您會建立一個新的 Again 場景並新增提示,詢問使用者是否想選取其他選項。

如要建立 Again 場景,請按照下列步驟操作:

  1. 按一下導覽列中的 [開發]
  2. 按一下「場景」下方的 [+] (加號)。
  3. 輸入「Again」並按下 Enter
  4. 按一下導覽列中的 Again 場景。
  5. 按一下「輸入時」旁邊的 [+] (加號)。
  6. 選取 [傳送提示],然後新增下列提示和建議方塊:
candidates:
  - first_simple:
      variants:
        - speech: >-
            That is what I see for you. Would you like to choose a different option and
            explore another future?
    suggestions:
      - title: 'Yes'
      - title: 'No'
  1. 按一下 [儲存]

新增從 FortuneAgain 個場景的轉場效果

使用者收到命運後,對話就必須轉換為新的 Again 場景。

如要將 Fortune 場景轉換到 Again 場景,請按照下列步驟操作:

  1. 按一下 [Fortune] 場景。
  2. 按一下第一個條件 (scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon") 開啟選項視窗。
  3. 捲動畫面並選取「轉換」下方的「Again
  4. 按一下 [儲存]
  5. 按一下第二個條件以開啟選項視窗。
  6. 捲動畫面並選取「轉換」下方的「Again
  7. 按一下 [儲存]
  8. 按一下第三個條件以開啟選項視窗。
  9. 捲動畫面並選取「轉換」下方的「Again
  10. 按一下 [儲存]

在模擬工具中測試您的操作

此時,您的動作應在使用者收到幸運時提供下列提示:"這是我看到的。您是否想要選擇其他選項,並探索其他未來發展?

如要測試動作,請按照下列步驟操作:

  1. 按一下導覽列中的 [測試]
  2. 在「輸入」欄位中輸入 Talk to my test app,然後按下 Enter
  3. 在「輸入」欄位中輸入 Yes,然後按下 Enter。您也可以點選 [是] 建議方塊。
  4. 點擊、輸入或說出dragon

b299e9fed9aedb69.png

您應會收到拖曳選項和 Again 提示的幸運星。

新增意圖並轉換至 Again 個場景

在本節中,您將在 Again 場景中加入 yesno 意圖,讓動作瞭解使用者是否想要選擇新選項。您也可以為 yesno 意圖新增適當的轉場效果。yes 意圖會轉換為 Fortune 場景,而 no 意圖會轉換為 End conversation 系統場景。

如要在 Again 場景中新增意圖和轉場效果,請按照下列步驟操作:

  1. 按一下導覽列中的 [開發]
  2. 按一下 Again 場景。
  3. 按一下「使用者意圖處理」旁邊的 [+] (加號)。
  4. 在意圖下拉式選單中選取 [yes] (是)
  5. 從 [轉換] 下拉式選單中選取 Fortune
  6. 按一下 [儲存]

c2efba35ea881b0d.png

  1. 按一下「使用者意圖處理」旁邊的 [+] (加號)。
  2. 在意圖下拉式選單中選取 [no] (否)
  3. 從 [轉換] 下拉式選單中選取 [結束會話群組]
  4. 選取 [Send 提示],然後在程式碼編輯器中新增下列提示:
candidates:
  - first_simple:
      variants:
        - speech: >-
            It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
  1. 按一下 [儲存]

在模擬工具中測試您的操作

你的動作現在應瞭解使用者是否想選擇新選項,或結束對話。

如要測試 yes 意圖,請按照下列步驟操作:

  1. 按一下導覽列中的 [測試]
  2. 在「輸入」欄位中輸入 Talk to my test app,然後按下 Enter
  3. 在「輸入」欄位中輸入 Yes,然後按下 Enter。您也可以點選 [是] 建議方塊。
  4. 點選、輸入或說出其中一個選項。
  5. 在「輸入」欄位中輸入 Yes,然後按下 Enter

5d0690332efe2e29.png

您應該會看到以下提示:「你該選擇什麼方式來協助你完成任務、龍、翻譯譯者或指南針

如要測試 no 意圖,請按照下列步驟操作:

  1. 點選、輸入或說出其中一個選項。
  2. 在輸入欄位中輸入 No,然後按下 Enter

您應該會收到 End conversation 提示:" 希望您滿意我們的選擇。祝你順利完成任務。Farewell.“

4. 新增支援路徑

現在,您已經建立了大多數動作在您主要採取動作的主要路徑。不過,使用者可以透過 Fortune 場景中的提示回答「你該選擇什麼方式來協助你完成任務、龍、翻譯器或指南針部署,但該選項並非系統提供的選項。

在這個部分中,您可以設定動作來瞭解使用者選擇「魔法」、「金錢」或「電話」的時機,並在使用者選擇其中一個選項時提示他們選用其中一個選項。設定這項邏輯時,您必須建立一個新的 type,其中包含其他這些選項和新意圖 other_option,當使用者符合其中一個選項時就會配對。您也必須在 other_option 意圖中加上註解,以識別並擷取意圖參數

當「Google 助理」的自然語言處理 (NLU) 引擎在使用者輸入時偵測到參數比對,就會擷取該值做為類型參數,方便您在場景中執行邏輯。在這個程式碼研究室中,您可以設定動作來擷取使用者選擇的輔助程式,並在提示中參照該選擇。

建立「unavailable_options」類型

您現在可以建立包含多種不同選項的 unavailable_options 類型,讓動作可在使用者輸入內容中找出這些資料。

如要建立 unavailable_options 類型,請按照下列步驟操作:

  1. 按一下導覽列中的 [開發]
  2. 在「類型」下方,按一下 [+] (加號)。
  3. 輸入「unavailable_options」並按下 Enter
  4. 按一下 unavailable_options 開啟選項。
  5. 在「新增項目」區段中輸入下列項目和對應的值:

horse

horsestallionsteed

magic

magicenchantedspells

money

moneycashgold

phone

phonecellapps

鍵值組應如下所示:

c9e119e0f5fb2a47.png

  1. 按一下 [儲存]

建立other_option意圖

接著,建立名為「other_option」的意圖,並新增包含「unavailable_options」類型選項的訓練詞組。當使用者選取 unavailable_options 類型中包含的選項時,這項意圖就會相符。

如要建立和設定 other_option 意圖,請按照下列步驟操作:

  1. 按一下「自訂意願」下方的 [+] (加號)。
  2. 輸入「other_option」並按下 Enter
  3. 按一下 other_option 開啟視窗。
  4. 新增下列訓練詞組,然後在每個詞組後按下 Enter
  • I want to use spells
  • I really really want to use a phone
  • magic!
  • cash
  • I want to ride a horse
  1. 在「新增意圖參數」區段中,將參數名稱更新為 chosenUnavailableOption
  2. 按一下 [儲存]

當您輸入訓練詞組時,Action Builder 能從 unavailable_options 類型中識別 spellsphonemagiccashhorse,並自動反白顯示 (註解) 這些字詞。動作製作工具會自動在「新增意圖參數」區段中新增意圖參數,如下圖所示。

意圖參數可讓您擷取選項名稱,並在提示中使用該選項。

df61d4489f0910.png

other_option 個意圖新增至 Fortune 個場景

現在您有一個意圖 other_option,可以處理使用者指定的選項不是原始的其中一個選項。在本節中,您將 other_option 意圖新增至 Fortune 場景中。您可以利用意圖參數,根據使用者的輸入內容來自訂提示。

如要將 other_option 意圖新增至 Fortune 場景,請按照下列步驟操作:

  1. 按一下 [Fortune] 場景。
  2. 按一下「使用者意圖處理」旁邊的 [+] (加號)。
  3. 從意圖下拉式選單中選取 other_option
  4. 選取 [傳送提示],然後新增下列提示:
candidates:
  - first_simple:
      variants:
        - speech: >-
            I have seen the future and a $intent.params.chosenUnavailableOption.original
            will not aid you on your journey. 

運算式 $intent.params.chosenUnavailableOption 參照意圖參數物件,$intent.params.chosenUnavailableOption.original 則參照該物件的值。original property 是指使用者指定的原始輸入內容。

  1. 按一下 [儲存]

4bab1efbe21056aa.png

如果使用者在 Fortune 場景中以 unavailable_options 類型列出選項,系統會比對 other_option 意圖,並在提示佇列中新增提示。由於未指定 轉換,所以系統會重新評估條件階段,繼續執行場景執行迴圈。chosenOptions 版位隨即會在提示佇列中加入提示,並將提示佇列傳送給使用者。

在模擬工具中測試您的操作

當使用者選取 unavailable_options 類型中列出的其中一種選項時,您的動作應適當回應,並指出使用者選取了哪些輔助項目。接著,您的動作應提示使用者挑選其中一個原始選項 (龍、譯者或指南針)。

如要在模擬工具中測試動作,請按照下列步驟操作:

  1. 按一下導覽列中的 [測試]
  2. 在「輸入」欄位中輸入 Talk to my test app,然後按下 Enter
  3. 在「輸入」欄位中輸入 Yes,然後按下 Enter。您也可以點選 [是] 建議方塊。
  4. 在「輸入」欄位中輸入 magic,然後按下 Enter

3a42c33eca435f32.png

您可能會注意到,當使用者選擇「魔法」時,提示訊息似乎並不準確;原因 是 「a」下列各節說明瞭這個問題。

新增 unavailable_options 處理常式

如要將「a」文章置於 unavailable_options 類型適用的選項之前,您可以在執行邏輯中設定事件處理常式,以檢查使用者選擇的選項是否需要「a」。首先,您必須設定動作,才能在主控台中呼叫處理常式。

如要新增 unavailable_options 處理常式,請按照下列步驟操作:

  1. 按一下導覽列中的 [開發]
  2. 按一下 Fortune 場景。
  3. 在「使用者意圖處理」下方,按一下 [當其他條件相符時] 即可開啟視窗。
  4. 取消勾選 [傳送提示] 核取方塊。
  5. 勾選 [Call your Webhook] 核取方塊。
  6. 在事件處理常式的文字方塊中輸入 unavailable_options

52a0fba115f1b377.png

  1. 按一下 [儲存]

更新及部署執行要求

您已經將動作設定為呼叫 unavailable_options 事件處理常式,現在可以在執行要求中更新並部署處理常式。

如要更新出貨設定,請按照下列步驟操作:

  1. 按一下導覽列中的 [Webhook]
  2. greeting 處理常式下加入下列程式碼:
app.handle('unavailable_options', conv => {
  const option = conv.intent.params.chosenUnavailableOption.original;
  const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
  let message = 'I have seen the future and ';
  if(optionsNeedA.has(optionKey)){
    message = message + 'a ';
  }
  message = message + `${option} will not aid you on your journey. `;
  conv.add(message);
});
  1. const app = conversation(); 中加入以下程式碼:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
  1. 按一下 [儲存執行要求]
  2. 按一下 [Deploy Fulfillment] (部署執行要求)。部署作業完成後,編輯器上方會顯示「您的 Cloud Function 部署為最新版本」訊息。

瞭解程式碼

unavailable_options 處理常式會執行下列作業:

  • conv 物件取得 option 資料,並將 option 指派至 original 屬性,也就是使用者的原始輸入內容
  • optionKey 指派給 resolved 屬性,這是 unavailable_options 類型的金鑰
  • 檢查 optionKey 是否為需要「a」的任一選項;如果是的話,請以加上「a」來建構訊息。
  • 透過「conv.add(message)」新增訊息

在模擬工具中測試您的操作

您的動作現在應根據使用者在 unavailable_options 類型中做出的選擇是否需要「a」來調整提示。

如要測試動作,請按照下列步驟操作:

  1. 按一下導覽列中的 [測試]
  2. 在 [輸入] 欄位中按一下或輸入 Talk to my test app,然後按下 Enter
  3. 在「輸入」欄位中輸入 Yes,然後按下 Enter。您也可以點選 [是] 建議方塊。
  4. 在「輸入」欄位中輸入 magic,然後按下 Enter
  5. 在「輸入」欄位中輸入 horse,然後按下 Enter

54ee24c5c3c56e.png

您的動作應加入「a」的前面;「建立」時,則建立提示訊息時不要選取「a」;

清除專案 [建議]

為了避免產生可能的費用,建議您移除不需要使用的專案。如要刪除您在這個程式碼研究室中建立的專案,請按照下列步驟操作:

  1. 如要刪除 Cloud 專案和資源,請完成關閉 (刪除) 專案一節中所列步驟。
  1. 選用:如要立即從 Actions 主控台移除專案,請參閱刪除專案。如果您未完成這個步驟,專案約在 30 天後就會自動移除。

5. 恭喜!

你現在已經介紹了建立「Google 助理」動作所需的必備技能。

說明

  • 如何使用 Node.js 執行資料庫開發對話動作
  • 如何使用版位向使用者收集資料
  • 如何使用條件為場景新增邏輯
  • 如何新增遊戲迴圈
  • 如何新增支援路徑

瞭解詳情

探索下列資源,進一步瞭解如何建構 Actions for Google 助理:

在 Twitter 上追蹤 @ActionsOnGoogle,即可隨時掌握最新公告,同時透過 Tweet 將訊息張貼至 #AoGDevs,藉此分享您的創意內容!

意見回饋問卷調查

離開前,請填寫一份簡短的問卷調查,讓我們瞭解您的使用體驗。