Итак, я пытаюсь извлечь некоторые данные, используя 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);
}