如何解决Alexa 自定义技能未将项目插入 DynamoDB
厌倦了遵循高低游戏模式,但不知何故 dynamodb 没有获得任何插入??
我正在使用一个响应拦截器,它会在某些情况下将一些会话数据保存到 dynamodb 中,如下所示:
@Override
public void process(HandlerInput handlerInput,Optional<Response> optional) {
var sessionAttributes = handlerInput.getAttributesManager().getSessionAttributes();
var sessionState = (String)sessionAttributes.get((Constants.STATE));
var oldState = (String)sessionAttributes.get(Constants.STATE_OLD);
// Update persistent storage whenever there's a change
if (!oldState.equals(sessionState)) {
handlerInput.getAttributesManager().setPersistentAttributes(new HashMap<>(){{
put(Constants.STATE,sessionState);
}});
sessionAttributes.put(Constants.STATE_OLD,sessionState);
logger.info("Persistent state updated");
}
logger.info("SaveSessionInterceptor called");
}
并在主streamHandler中
private static Skill getSkill() {
logger.info("Skill Stream Handler Initialized");
return Skills.standard()
.withSkillId(config.ALEXA_SKILL_ID)
.addRequestHandlers(
// handlers
)
.addResponseInterceptor(new SaveSessionInterceptor())
// Add persistent storage support
.withAutoCreateTable(true)
.withTableName("AudioAdventure")
.build();
}
在 AWS 上,表已创建,但没有响应通过持久属性插入。
也许我做错了什么..
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。