簡體   English   中英

alexa 在調用技能時發送 SessionEndedRequest

[英]alexa sending SessionEndedRequest on skill invocation

我正在開發一種 alexa 技能,並在亞馬遜提供的 alexa 模擬器上對其進行測試,它將根據用戶根據要求提供的關鍵字帶來一些新聞。

我將關鍵字設置為“ bbc news ”作為調用。

過去 2 天一切正常,現在突然間 alexa 模擬器自己發送了兩個請求

在調用調用“ bbc news ”時,模擬器將LaunchRequest發送到我的服務器,然后在 1 秒內它自動將“ SessionEndedRequest ”發送到我的服務器。 我不知道發生了什么,我調試了我的 php 代碼,但它工作正常。

我剛剛遇到了類似的問題,經過幾個小時的更改后,它仍然無法正常工作。 在 AWS Lambda 上,所有測試都成功運行。 這聽起來很愚蠢,但在測試頁面(alexa 模擬器)上,它說在頂部啟用了技能測試: ,您有兩個選項: Development / Off

嘗試切換關閉狀態,然后再次選擇開發 我 100% 確定它以某種方式重置了 Alexa 的模擬器當前狀態並使其再次為我正常工作。

嗨,我在 ALexa Echo 節目中遇到了同樣的問題。 一旦我從 echo show 調用我的技能,它首先發送帶有原因的 SessionEndedRequest:USER_INITIATED,然后幾秒鍾后自動發送另一個帶有調用詞和正確 IntentRequest 的請求。

第一反應:

{
  type: 'SessionEndedRequest',
  requestId: 'amzn1.echo-api.request.056129ac-6696-4928-98a7-b193cdf3301b',
  timestamp: '2020-10-20T04:21:12Z',
  locale: 'en-US',
  reason: 'USER_INITIATED'
}

並且 IntentRequest 請求在此之后自動出現

{
  type: 'IntentRequest',
  requestId: 'amzn1.echo-api.request.4a731091-72c8-430d-91e9-e7db1a5c4d16',
  locale: 'en-US',
  timestamp: '2020-10-20T04:21:12Z',
  intent: {
    name: 'EveryThingIntent',
    confirmationStatus: 'NONE',
    slots: { EveryThingSlot: [Object] }
  }

這只會發生在 alexa echo show 中。 從開發人員測試儀表板和手機上的 Alexa 應用程序中,我只得到了 IntentRequest

我遇到了同樣的問題,基礎是如果你之前的請求(會話)沒有正確結束,也許你在對話中退出了技能,或者在你的代碼響應結束時有.reprompt(),它還在等待回復。 所以當你再次調用技能時,它首先通過發送'SessionEndedRequest'終止之前的session,然后發送'LaunchRequest'來調用技能。

要解決此問題,請檢查是否在您的對話流結束時,是否有 a.reprompt() 在您的最終響應中。 去掉它。 自己就這樣修好了。

 const FnHandler = { canHandle(handlerInput) { return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest' && Alexa.getIntentName(handlerInput.requestEnvelope) === 'FnIntent'; }, handle(handlerInput) { // const { attributesManager } = handlerInput; // const sessionAttributes = attributesManager.getSessionAttributes(); // sessionAttributes.state = 'ENDED'; return handlerInput.responseBuilder.speak(`Welcome, start by saying the name.`).reprompt(`Please say a name to start;`)// Remove this,getResponse(); }, };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM