Как скрипт в хаботе? - PullRequest
0 голосов
/ 27 мая 2020

Вопрос: я зарегистрировался на сайте и получил скрипт для использования в качестве бота. Кстати, я использую hubot.

Код:

var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer xxxxxxxxxxxxxxxxxxx");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Cookie", "__xxxxxxxxxxxxxxxxxxxx");

var raw = JSON.stringify({"language":"pt_br","text":"sim"});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://yyyyyy/v2/parse/", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Когда я запускаю бота, я получаю эту ошибку:

*Headers is not defined
at Object. (/home/ubuntu/hubot-rocketchat-boilerplate/scripts/leadtest.js:1:17)
at Module._compile (internal/modules/cjs/loader.js:1200:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (/home/ubuntu/hubot-rocketchat-boilerplate/node_modules/coffeescript/lib/coffeescript/register.js:53:36)
at Function.Module._load (internal/modules/cjs/loader.js:937:14)
at Module.require (internal/modules/cjs/loader.js:1089:19)
at require (internal/modules/cjs/helpers.js:73:18)
at Robot.loadFile (/home/ubuntu/hubot-rocketchat-boilerplate/node_modules/hubot/src/robot.js:360:22)
at /home/ubuntu/hubot-rocketchat-boilerplate/node_modules/hubot/src/robot.js:383:52
at Array.map (:null:null)
at Robot.load (/home/ubuntu/hubot-rocketchat-boilerplate/node_modules/hubot/src/robot.js:383:35)
at RocketChatBotAdapter.loadScripts (/home/ubuntu/hubot-rocketchat-boilerplate/node_modules/hubot/bin/hubot.js:115:9)
at Object.onceWrapper (events.js:421:28)
at RocketChatBotAdapter.emit (events.js:315:20)
at /home/ubuntu/hubot-rocketchat-boilerplate/node_modules/hubot-rocketchat/index.js:80:14
at processTicksAndRejections (internal/process/task_queues.js:97:5)*

Я получил проблема в первой строке кода, что такое заголовок и что мне делать? Что мне не хватает? Спасибо, ребята.

1 Ответ

0 голосов
/ 27 мая 2020

Вы создали объект Header в первой строке кода как:

var myHeaders = new Headers();

Поскольку программа не может найти объект Headers () в программе, она не может его инициализировать. Таким образом, возникает ошибка Headers not defined.

Переходим к следующему вопросу: Что такое заголовки? :

Интерфейс заголовков API Fetch позволяет выполнять различные действия с заголовками HTTP-запроса и ответа. Вы можете обратиться к этой документации , чтобы узнать больше об этом.

Наконец, эта проблема уже решена здесь , пожалуйста, обратитесь к ней. Однако, если вы хотите получить здесь свой ответ, предлагаемый обходной путь:

const fetch = require('node-fetch');
global.fetch = fetch
global.Headers = fetch.Headers;

Это сделано, потому что Headers() является собственной конструкцией для Fetch API, и вам, вероятно, придется полифилить Fetch API.

...