Чтение из внешнего файла в переменную для this.response.speak - PullRequest
0 голосов
/ 31 мая 2018

У меня есть следующее намерение для навыка Alexa, и мне нужно прочитать файл .txt с внешнего URL-адреса в переменную для 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');
  },

Любая помощь в том, как просто прочитать текстовый файл в переменную. Я могу заставить Алекса говорить через this.response.speak?

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете использовать 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.
});

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

Также вам нужно будет добавить пакет request к лямбде вашего навыка.Для этого установите пакет запроса в папку, где находится ваш код (lambda_function.js и все остальные файлы).Затем создайте zip-файл из всех файлов (не из папки, в которой находятся ваши файлы) и загрузите его в свою лямбда-версию aws.

...