【问题标题】:Alexa Skill doesnt work with outbound API callAlexa Skill 不适用于出站 API 调用
【发布时间】:2020-10-21 02:52:59
【问题描述】:

如果我的意图中有以下代码,那么一切都很好......

handle(handlerInput) {
    const request = handlerInput.requestEnvelope.request;
    const responseBuilder = handlerInput.responseBuilder;
    let sessionAttributes = handlerInput.attributesManager.getSessionAttributes();

    let say = 'Hello. ';

    let slotStatus = '';
    let resolvedSlot;

    let slotValues = getSlotValues(request.intent.slots); 
    slotStatus = "I heard you say " + slotValues.query.heardAs;
    say += slotStatus;


    return responseBuilder
        .speak(say)
        .reprompt('try again, ' + say)
        .getResponse();
},

当我尝试拨打外线电话时,我得到一个错误,我不知道为什么。

async handle(handlerInput) {
    
    const request = handlerInput.requestEnvelope.request;
    const responseBuilder = handlerInput.responseBuilder;
    let sessionAttributes = handlerInput.attributesManager.getSessionAttributes();

    let say = 'Hello. ';
    let slotStatus = '';
    let resolvedSlot;

    let slotValues = getSlotValues(request.intent.slots); 
    slotStatus = "I heard " + slotValues.query.heardAs;
    
    const response = await httpGet(slotValues.query.heardAs);

    slotStatus = "I heard " + response.heard + " from the server.";
    say += slotStatus;

    return handlerInput.responseBuilder
            .speak(say)
            .reprompt("try again. " + say)
            .getResponse();

},

httpGet方法如下...

function httpGet(query) {
  return new Promise(((resolve, reject) => {
    var options = {
        host: 'www.hostname.app',
        port: 443,
        path: '/api/alexa.php?'+query,
        method: 'GET',
    };
    
    const request = https.request(options, (response) => {
      response.setEncoding('utf8');
      let returnData = '';

      response.on('data', (chunk) => {
        returnData += chunk;
      });

      response.on('end', () => {
        resolve(JSON.parse(returnData));
      });

      response.on('error', (error) => {
        reject(error);
      });
    });
    request.end();
  }));
}

【问题讨论】:

  • 如果您将 httpGet 代码作为独立函数运行在您的 alexa 函数之外,它会返回什么?

标签: node.js alexa alexa-skills-kit alexa-skill


【解决方案1】:

您应该深入了解 AWS Lambda 的 CloudWatch 日志以获取错误消息。

此外,您可以使用 node.js、ASK CLI 和 VS Code 插件在本地运行和调试您的技能。几天前,我为 Alexa Community India 小组做了一个演示,并介绍了如何设置和使用它。

https://www.youtube.com/watch?v=xODwbsvisr4

【讨论】:

  • 这不是一个真正的答案,但这个问题还没有真正提供足够的信息
猜你喜欢
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多