Получение пустого SessionKey из API в LimeSurvey - PullRequest
0 голосов
/ 27 декабря 2018

var request = require('request');

//******GLOBAL***************
var SESSIONKEY = "";
var options = {
  url: "https://xxxxxxxxxxxxxxxx/index.php/admin/remotecontrol",
  method: "POST",
  headers: {
    'user-agent': 'Apache-HttpClient/4.2.2 (java 1.5)',
    'host': 'xxxxxxxxxxxxxxxx',
    'path': '/index.php/admin/remotecontrol',
    'connection': 'keep-alive',
    'content-type': 'application/json'
  }
};

//*******AUTHENTIFICATION*******
options.body = JSON.stringify({
  method: 'get_session_key',
  params: ['myusername', 'mypassword'],
  id: 1
});

request(options, function(error, response, body) {
  if (!error && response.statusCode == 200) {
    body = JSON.parse(body);

    //*********KEEP THE KEY*********  
    if (SESSIONKEY === "") {
      console.log("NEW KEY -->" + body.result);
      SESSIONKEY = body.result;
      nextFonction();
    }
  } else console.log("ERROR -->" + body);
});

Версия Limesurvey - 3.0.1

После запуска этого кода я получаю пустое тело и показываю ошибку

SyntaxError: Неожиданный конец ввода JSON в JSON.parse ()

Эта ошибка возникает из-за пустого ответа от limesurvey.Как я могу решить эту ошибку?Или есть какой-нибудь другой способ получить SessionKey из limesurvey?Пожалуйста, помогите.

...