【发布时间】:2018-09-17 21:57:05
【问题描述】:
我在网上几乎找不到与此主题相关的任何信息。 我不知道如何访问意图,或者使用它们来返回响应,因为某些参数符合该意图。我试图创建一个简单的对话,
我:“添加一个单位”
Alexa:“单位应该叫什么?”
我:“工程”
Alexa:“好的,添加了工程单元。”
目前我所知道的只是在调用该技能后执行一个动作,而不管说什么。例如,我可以直接说,
我:“Alexa,打开 StudyPal”
Alexa:“激活技能时返回的东西”
或者...
我:“Alexa,向 StudyPal 询问我的单位”
Alexa:“激活技能时返回的东西”
任何帮助将不胜感激。作为参考,这是我的一些代码...
public class StudyPalHandler implements RequestStreamHandler {
private final Skill skill;
private final JacksonSerializer serializer;
public StudyPalHandler() {
skill = new StandardSkillBuilder()
.addRequestHandler(new StudyPalExtraHandler())
.build();
serializer = new JacksonSerializer();
}
@Override
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
String request = IOUtils.toString(inputStream);
RequestEnvelope requestEnvelope = serializer.deserialize(request, RequestEnvelope.class);
ResponseEnvelope responseEnvelope = skill.invoke(requestEnvelope);
byte[] response = serializer.serialize(responseEnvelope).getBytes(StandardCharsets.UTF_8);
outputStream.write(response);
}
}
public class StudyPalExtraHandler implements RequestHandler {
@Override
public boolean canHandle(HandlerInput handlerInput) {
return true;
}
@Override
public Optional<Response> handle(HandlerInput handlerInput) {
return handlerInput.getResponseBuilder().withSpeech("Something that is returned whenever the skill is activated").build();
}
}
【问题讨论】:
标签: java alexa alexa-skills-kit