You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Alexa Skill中存储启动时间并实现后续调用?

保存并获取Alexa Skill的启动时间

一、保存启动时间

要在用户触发startTIME请求时保存当前时间,你可以利用Alexa的**会话属性(Session Attributes)**存储这个值,它会在当前Skill会话的整个生命周期内保持有效。修改你的PlayGameHandler代码如下:

const PlayGameHandler = {
  canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === 'startTIME';
  },
  handle(handlerInput) {
    // 获取当前时间,这里用ISO标准格式,也可根据需求改用时间戳或其他格式
    const startTime = new Date().toISOString();
    // 获取会话属性管理器
    const attributesManager = handlerInput.attributesManager;
    // 读取现有会话属性并存入启动时间
    const sessionAttributes = attributesManager.getSessionAttributes();
    sessionAttributes.startTime = startTime;
    attributesManager.setSessionAttributes(sessionAttributes);

    const speechText = 'Test Reply!';

    return handlerInput.responseBuilder
      .speak(speechText)
      .reprompt(speechText)
      .withSimpleCard('Hello World', speechText)
      .getResponse();
  },
};

二、后续获取该值

当你需要在Skill的其他Handler(比如结束Skill的处理逻辑)中读取这个启动时间时,同样通过attributesManager读取会话属性即可:

// 示例:结束Skill的Handler
const EndGameHandler = {
  canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === 'IntentRequest'
      && handlerInput.requestEnvelope.request.intent.name === 'EndGameIntent';
  },
  handle(handlerInput) {
    // 获取会话属性管理器
    const attributesManager = handlerInput.attributesManager;
    const sessionAttributes = attributesManager.getSessionAttributes();
    // 读取之前保存的启动时间
    const startTime = sessionAttributes.startTime;

    // 这里可对startTime做后续处理,比如计算会话时长
    const speechText = `你本次启动的时间是${startTime}`;

    return handlerInput.responseBuilder
      .speak(speechText)
      .withSimpleCard('结束会话', speechText)
      .getResponse();
  },
};

补充说明

  • 如果需要跨会话保存时间(比如用户下次打开Skill仍能读取),可以改用持久属性(Persistent Attributes),这需要配置Skill的持久存储(如DynamoDB),但你的需求是在本次Skill结束时调用,会话属性完全够用。
  • 时间格式可按需调整,比如用new Date().getTime()获取时间戳,后续计算时长会更便捷。

内容的提问来源于stack exchange,提问作者Lolli Group

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:56:09