从外部文件读取变量为this.response.speak

时间:2018-05-31 15:41:41

标签: alexa alexa-skills-kit alexa-skill

我对Alexa Skill有以下意图,我需要将外部URL中的.txt文件读入变量,以便Alexa说出来。这就是我到目前为止......

 'PlayVoice': function() {
    var url = "https://example.com/myfile.txt";
    var output = 'Okay, here is the text file' + url;
    this.response.speak(output);
    this.emit(':responseReady');
  },

显然,它现在唯一能做的就是阅读实际的网址。

我尝试过使用fs.readFile,但我在Alexa Skill中遇到错误。这是我试过的代码:

  'PlayVoice': function() {
    var content;
    fs.readFile('https://example.com/myfile.txt', function read(err, data) {
    content = data;
    this.response.speak(content);
    }
    this.emit(':responseReady');
  },

关于如何简单地将文本文件读入变量的任何帮助我可以让Alexa通过this.response.speak发言?

1 个答案:

答案 0 :(得分:0)

您可以使用request包。

这样的事情应该会有所帮助。

var request = require('request');
request('url/of/the/file', function (error, response, body) {
  console.log('error:', error); // Print the error if one occurred
  console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
  console.log('body:', body); // contents of your file.
});

来源:https://www.npmjs.com/package/request#super-simple-to-use

此外,您还需要将包request添加到您的技能lambda中。 为此,请在您的代码所在的文件夹(lambda_function.js和所有其他文件)中安装请求包。然后创建所有文件的zip(不是文件所在的文件夹)并将其上传到你的aws lambda。