因此,我正在尝试使用API使用Google脚本提取一些数据。
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);
}
答案 0 :(得分:0)
尝试看看是否可行。
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);
}