我已經開發成功使用spring boot的alexa技巧。這是來自我的pom.xml的依賴定義。
<dependency>
<groupId>com.amazon.alexa</groupId>
<artifactId>alexa-skills-kit</artifactId>
<version>1.3.1</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
希望能清除你的問題。
而且使用的SDK消息對象,你可以在你的休息控制器添加Bean
@Bean
Module speechletRequestModule() {
return new SpeechletRequestModule();
}
,然後請求映射爲簡單
@RequestMapping(value = "skills/myskill", method = RequestMethod.POST)
public SpeechletResponseEnvelope handle(@RequestBody final SpeechletRequestEnvelope speechletRequestEnvelope) {}
謝謝!我發現用Flask-Ask開發Python更容易。 Alexa Java SDK有許多重複的導入。你還用@configration配置了speechletservlet嗎? –
我實際上並沒有使用他們提供的servlet,而是使用spring控制器,而不是使用請求/響應體返回他們在sdk中提供的傑克遜映射對象。我還使用了他們的signature/timestamp/etc驗證器,這些驗證器只是掛在spring @ControllerAdvice配置文件中,而不是。另外,通過沿着這條路線,我可以很輕鬆地將谷歌端點添加到同一個應用程序中,並以最少的工作支持兩個平臺。 –
@StephenGarlick你可以分享一些示例應用程序。我也試圖做同樣的一週,但它不工作 –