从外部文件读入 this.response.speak 的变量

Read from external file into variable for this.response.speak

我对 Alexa 技能有以下意图,我需要从外部 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');
  },

显然,它现在唯一做的就是读取实际的 URL。

我已经尝试使用 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 说话?

您可以使用 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。