Требуется аутентификация в Google Script - PullRequest
0 голосов
/ 07 апреля 2020

Итак, я пытаюсь извлечь некоторые данные, используя Google Script, используя API.

Документ API говорит мне сделать это так:

Для аутентификации:

POST /safefleet/api/authenticate HTTP/1.1
Host: api.safefleet.eu
Content-Type: application/json
{"username": "test", "password": "1234"}

И затем я получаю этот ответ, который в порядке, потому что я его получаю:

HTTP/1.1 200 OK
Content-Type: application/json
Set-Cookie: sessionid=4ce508d20832d12a64fd49ecb336a7b6
{"message": "ok"}

После этого я хочу получить нужные мне данные, и он говорит мне сделать это так:

GET /safefleet/api/vehicles HTTP/1.1
Host: api.safefleet.eu
Cookie: sessionid=4ce508d20832d12a64fd49ecb336a7b6

И ответ, который я должен получить, должен выглядеть следующим образом:

HTTP/1.1 200 OK
Content-Type: application/json
[
    {"vehicle_id": 1234, "name": "Vehicle A", ...},
    {"vehicle_id": 2345, "name": "Vehicle B", ...}
    ...
]

Но вместо этого я получаю «Требуется аутентификация» ...

Это код:

function Vehicles() {


  var LogIn = UrlFetchApp.fetch("https://alpha.safefleet.eu/safefleet/api/authenticate/?username=test&password=123");

  Logger.log(LogIn.getHeaders()["Set-Cookie"]);

  var s = LogIn.getHeaders()["Set-Cookie"];

  var sessionid = JSON.stringify(s);

  var cookie = {
    "Cookie" : sessionid
  };
   var headers = {
    "Cookie": cookie
  };

  var params = {
    "method": "GET",
    "muteHttpExceptions": true,
    "headers": headers
  };

  var Vehicles = UrlFetchApp.fetch("https://alpha.safefleet.eu/safefleet/api/vehicles/", params);

  Logger.log(Vehicles);

}

1 Ответ

0 голосов
/ 07 апреля 2020

Попробуйте и посмотрите, работает ли это.

function Vehicles() {

  var payload = {
    "username": "test",
    "password": "123"
  };

  var options = {
    'method' : 'post',
    'muteHttpExceptions': true,
    'payload' : payload
  };

  var LogIn = UrlFetchApp.fetch("https://alpha.safefleet.eu/safefleet/api/authenticate", options);

  var cookie = LogIn.getHeaders()["Set-Cookie"];

  var headers = {
    "Cookie": cookie
  };

  var params = {
    "method": "GET",
    "muteHttpExceptions": true,
    "headers": headers
  };

  var Vehicles = UrlFetchApp.fetch("https://alpha.safefleet.eu/safefleet/api/vehicles/", params);
  Logger.log(Vehicles);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...