將 Bot 連線至 Alexa

適用于: SDK v4

您可以設定 Bot,透過 Alexa 自訂技能與人員通訊。 本文說明如何使用 Alexa 開發人員主控台建立 Alexa 技能、將 Bot 連線至 Azure 中的 Alexa 技能,以及在 Alexa 中測試您的 Bot。

必要條件

  • Azure 訂用帳戶。 如果您還沒有帳戶,請在開始之前建立 免費帳戶
  • 發佈至 Azure 的 Bot,您想要連線到 Alexa。
  • Amazon 帳戶。

重要

您的 Bot 必須使用 Bot Framework SDK 4.8 版或更新版本。 如果您有現有的 Bot,您可能需要更新 SDK 版本並重新發佈 Bot。

建立 Alexa 技能

  1. 登入 Alexa 開發人員主控台 ,然後選取 [ 建立技能 ]。

  2. 在下一個頁面上:

    1. 輸入新技能的名稱。
    2. 請確定 [ 選擇要新增至技能 的模型] 設定為 [自訂 ]。
    3. 請確定 [ 選擇裝載技能後端資源 的方法] 設定為 [ 布建您自己的 資源]。
    4. 選取 [ 建立技能 ]。

    Choose model and hosting

  3. 在下一個頁面上:

    1. 確定 [ 選擇範本 ] 設定為 [從頭開始]
    2. 選取 [ 選擇 ]。

    Choose a template

  4. 在 [互動模型 ] 底下的技能儀表板上 ,選取 [ JSON 編輯器 ]。

  5. 在 JSON 編輯器中:

    1. 以下列 JSON 取代現有的內容。

      {
          "interactionModel": {
              "languageModel": {
                  "invocationName": "<your-skill-invocation-name>",
                  "intents": [
                      {
                          "name": "GetUserIntent",
                          "slots": [
                              {
                                  "name": "phrase",
                                  "type": "phrase"
                              }
                          ],
                          "samples": [
                              "{phrase}"
                          ]
                      },
                      {
                          "name": "AMAZON.StopIntent",
                          "samples": []
                      }
                  ],
                  "types": [
                      {
                          "name": "phrase",
                          "values": [
                              {
                                  "name": {
                                      "value": "<example-phrase>"
                                  }
                              },
                              {
                                  "name": {
                                      "value": "<example-phrase>"
                                  }
                              },
                              {
                                  "name": {
                                      "value": "<example-phrase>"
                                  }
                              }
                          ]
                      }
                  ]
              }
          }
      }
      
    2. 針對 invocationName ,將 your-skill-invocation-name > 變更 < 為使用者將在 Alexa 上叫用技能的名稱。 例如,如果您的技能調用名稱是「配接器協助程式」,則使用者可以說出 「Alexa,啟動配接器協助程式」來啟動技能。

    3. 在 的 values 陣列中 types ,將 的 <example-phrase> 三個實例取代為使用者可說觸發技能的片語。 例如,如果使用者說「Alexa,請要求配接器協助程式給我 alexa 配接器的詳細資料」,其中一個範例片語可能是「給我 alexa 配接器的詳細資料」。

  6. 選取 [ 儲存模型 ],然後選取 [ 建置模型 ]。 這會更新 Alexa 上的技能設定。

在 Azure 中設定 Bot

若要完成此步驟,您需要 Alexa 技能識別碼。 從 Alexa 入口網站中的 URL 取得識別碼,或移至 Alexa 開發人員主控台 ,然後選取 [ 複製技能識別碼 ]。 您的 Alexa 技能識別碼應該是 「amzn1.ask.skill」 之類的值。 <some-guid > 」。

  1. 開啟 Azure 入口網站
  2. 開啟 Bot 的 [Azure Bot 資源] 刀鋒視窗。
  3. 開啟 [頻道] ,然後選取 [Alexa ]。
  4. Alexa 通道組態 中,輸入您在上一個步驟中複製的資訊。
    1. [輸入技能識別碼 ] 中,輸入您從 Alexa 開發人員主控台複製的 Alexa 技能識別碼。
    2. 選取套用
    3. 複製 Azure 產生的 Alexa 服務端點 URI。

更新您的 Alexa Bot 註冊

  1. 登入 Alexa 開發人員主控台

  2. 尋找並開啟技能的設定頁面。

  3. 選取 [端點 ]。

  4. 針對 [ 服務端點類型 ],選取 [ HTTPS ]。

  5. 針對 預設區域

    1. 輸入您從Azure 入口網站複製的 Alexa 服務端點 URI。
    2. 在下拉式清單中,選取 [我的開發端點] 是具有憑證授權單位單位 萬用字元憑證之網域的子域。

    Set service endpoint and endpoint type

  6. 選取 [ 儲存端點 ]。

測試及發佈您的技能

如果您擁有 Alexa 裝置,您可以在發佈技能之前先測試技能。

如需有關如何在其平臺上測試及發佈技能的資訊,請參閱自訂語音模型技能 的 Alexa Skills Kit 開發人員檔。

其他資訊

如需 Alexa 技能的詳細資訊,請參閱 Amazon 開發人員檔:

Alexa 中的使用者驗證

Alexa 中的使用者驗證是透過在 Alexa 技能 上設定和使用 帳戶連結來完成。 如需詳細資訊,請參閱 瞭解 Alexa 技能 的帳戶連結。 當使用者啟用技能時,您可以要求帳戶連結,也可以要求它作為交談流程的一部分。

如果您在交談中新增使用者驗證:

  1. 在傳出活動上附加登入卡片 。 這會轉換成 Alexa LinkAccount 卡片 ,提示使用者使用 Alexa 應用程式登入。

  2. 如果使用者成功將帳戶連結至應用程式,則通道資料中的後續要求會提供權杖。

下一步