Amazon web services 如何使用Amazon Echo显示技能显示图表

Amazon web services 如何使用Amazon Echo显示技能显示图表,amazon-web-services,amazon-dynamodb,alexa-skills-kit,Amazon Web Services,Amazon Dynamodb,Alexa Skills Kit,我在圣诞节有一个回声节目。现在我想尝试一下如何定制它。我已经创建了几个传感器,其指标存储在AWS DynamoDB中。现在我想知道我有什么可能显示由这些数据创建的图表。是否可以直接使用Alexa表示语言(APL)显示图表?有可能在APL中包含iFrame吗? 我没有找到关于这个话题的太多信息。也许你能给我指出正确的方向 提前非常感谢不确定这是否是您想要的,但您可以生成SVG图形并使用渲染器渲染这些图形 您将必须构建一个在调用时可以为您的度量提取数据并生成APL以呈现图形的模型 或者,如果您有一个

我在圣诞节有一个回声节目。现在我想尝试一下如何定制它。我已经创建了几个传感器,其指标存储在AWS DynamoDB中。现在我想知道我有什么可能显示由这些数据创建的图表。是否可以直接使用Alexa表示语言(APL)显示图表?有可能在APL中包含iFrame吗? 我没有找到关于这个话题的太多信息。也许你能给我指出正确的方向


提前非常感谢

不确定这是否是您想要的,但您可以生成SVG图形并使用渲染器渲染这些图形

您将必须构建一个在调用时可以为您的度量提取数据并生成APL以呈现图形的模型


或者,如果您有一个不同的服务器端渲染API用于可以光栅化的度量,您可以生成一个PNG并在Echo Show上进行渲染。

作为参考,我将显示一个能够导航到URL的nodejs函数的代码:

const MetricsChoiceIntentHandler = {
canHandle(handlerInput) {
    return Alexa.getIntentName(handlerInput.requestEnvelope) === 'MetricsChoiceIntent';
},
handle(handlerInput) {
    const choice = handlerInput.requestEnvelope.request.intent.slots.choice.value;
    const speakOutput = `Alles klar. Auf zu ${choice}`;
    console.log("Deine Wahl: "+choice);
    
    if (Alexa.getSupportedInterfaces(handlerInput.requestEnvelope)['Alexa.Presentation.APL']) {
        handlerInput.responseBuilder.addDirective({
            type: 'Alexa.Presentation.APL.RenderDocument',
            document: launchDocument,
            token: 'jip'
        });
        
        var urlToGo="";
        switch(choice){
            case "gaswarner":
                urlToGo="https://www.url1.com";
                break;
            case "temperatur":
                urlToGo="https://www.url2.com"
                break;
        }
        
        handlerInput.responseBuilder.addDirective({
            type: "Alexa.Presentation.APL.ExecuteCommands",
            token: 'jip',
            commands: [{
              type: "OpenURL",
              source: urlToGo
            }]
        });
    }  

    return handlerInput.responseBuilder
        .speak(speakOutput)
        .getResponse();
}
};
有两件重要的事情需要提及:

  • 为了导航到URL,您必须使用文档进行响应。这也可以是空白的伪APL文档
  • 如果要导航到URL,必须在文档和命令指令上设置标记(可以是任何您喜欢的标记)

  • 好的,同时我遇到了一个线程,它告诉我如何使用openURL命令使用APL导航到一个网站。这是一种显示测量指标的可能方式。关于直接生成图表的问题仍然悬而未决,谢谢。这并不像我希望的那样“互动”,但它肯定会起作用。