2017-08-02 43 views
0

我目前正在與該聲明將處理以下意圖的動作包工作:操作不使用SDK版本2

  • actions.intent.MAIN
  • actions.intent.TEXT
  • actions.intent.OPTION

我已經開始與前兩個,並進行代理這個我自己的NLP /響應聚會我能夠獲得基本的功能工作。我現在試圖通過使用askWithList來顯示用戶列表。我的行動包裹的定義如下:

{ 
    "actions": [ 
     { 
      "name": "MAIN", 
      "fulfillment": { 
       "conversationName": "JamesTest" 
      }, 
      "intent": { 
       "name": "actions.intent.MAIN" 
      } 
     }, 
     { 
      "name": "TEXT", 
      "fulfillment": { 
       "conversationName": "JamesTest" 
      }, 
      "intent": { 
       "name": "actions.intent.TEXT" 
      } 
     }, 
     { 
      "name": "OPTION", 
      "fulfillment": { 
       "conversationName": "JamesTest" 
      }, 
      "intent": { 
       "name": "actions.intent.OPTION" 
      } 
     } 
    ], 
    "conversations": { 
     "JamesTest": { 
      "name": "JamesTest", 
      "url": "myngrok" 
     } 
    } 
} 

當我嘗試在模擬器我收到以下錯誤askWithList和測試迴應:

{ 
    "name": "ResponseValidation", 
    "subDebugEntry": [{ 
    "name": "MalformedResponse", 
    "debugInfo": "expected_inputs[0].possible_intents[0]: intent 'actions.intent.OPTION' is only supported for version 2 and above." 
    }] 
} 

按我的理解是,所有項目創建的文檔2017年5月17日之後,默認情況下將使用版本2 SDK。我似乎也找不到任何跡象表明我可以明確聲明我想在Action Package定義中使用哪個版本。

有沒有人遇到過這個?這只是模擬器的一個限制,還是我缺少一些明顯的東西?

回答

0

它看起來好像conversations塊中有一個無證的(至少我找不到它)字段,名爲fulfillmentApiVersion,您的操作包中必須設置爲2。來自這裏的答案:askWithList on Actions on Google

0

你錯過了一些毫無意義的東西。 {:此文檔是somewhat hiddengactions命令仍然會生成版本1的json文件。

動作包裝必須明確地表明,它正在使用的版本,否則將被假定爲使用版本1

要指定版本2,你的「對話」欄目應該是這個樣子:

"conversations": { 
    "JamesTest": { 
     "name": "JamesTest", 
     "url": "myngrok", 
     "fulfillmentApiVersion": 2 
    } 
} 

請注意「fulfillmentApiVersion」參數。