我尝试使用谷歌应用程序脚本登录网站,但卡在代码“var loginResponse = UrlFetchApp.fetch(loginURL,loginOptions);”上 返回错误代码500。
我试图在 chrome 开发工具中获取所有必要的数据并输入我的代码,但仍然没有运气。编辑:我添加了函数 grabData 来获取令牌。我看到 logger.log 返回不同的令牌,也许这就是我无法登录的原因。
function getData() {
var loginURL = "https://example.com/login";
var token = grabData("https://example.com/login",
'<meta name="csrf-token" content="',
'">');
Logger.log(token); // Logger 1st
var dataURL = "https://example.com/c/daftar";
var loginPayload = {
'_token' : grabData("https://example.com/login",'<meta name="csrf-token" content="','">');,
'email' : 'example@email.com',
'password' : '123456'
};
Logger.log(loginPayload); //logger 2nd
var headers = {
'Connection':'keep-alive',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
'Content-Type':'application/x-www-form-urlencoded',
'Cookie':'XSRF-TOKEN=eyJpdiI6InJHYzBMamNXc1wveDRDaVRvcCtibnF3PT0iLCJ2YWx1ZSI6ImkzMFFrUUR0MVBQdTVOU0NLTWoyRmk5OElxNWQrMDVVU2llMlNrQjFXOSs0TjVTRmNZTmo0MUFQZVRGS21cL3lFRFN4R1pveDlBS2x1TmxDVVZ6YUJUdz09IiwibWFjIjoiNzVhYjQ2NDUzYjBhNmE0OTFjYzk2MGNhNGE3YTM1NDRmYjA4NTgyN2EyN2EwZTllYTE1ZDM4YzQ0NjA5ZmM3YyJ9; xxx=eyJpdiI6IkIwdFVjd2xwSXZwY3dld0k3K2F1QVE9PSIsInZhbHVlIjoiTXBzZGREZFwvak91TllaaktkalwvR1o0RFQzamc5bXd2UmY3WW94UWhOdlQzeDJTTFVKZ2l2NUsySmZTdzBNYTVITDk5b0JqanQ3cFBYVlJiaWlxU1wvSlE9PSIsIm1hYyI6IjA5MDdkMzVhOTNhZWU5MWIxMGNlMTFiOWExNjJhZjVmY2VjYmJlMWZkYzg1MjMxNzhjOTcwNzIxZWJlMjlmMWUifQ%3D%3D',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
};
var loginOptions = {
'payload':loginPayload,
'method':'POST',
'headers': headers
'followRedirects':false
};
var loginResponse = UrlFetchApp.fetch(loginURL,loginOptions);
var loginHeaders = loginResponse.getAllHeaders();
var cookie = [loginResponse.getAllHeaders()["Set-Cookie"]];
cookie[0] = cookie[0].split(";")[0];
cookie = cookie.join(";");
var dataHeaders = {'Cookie':cookie};
var dataOptions = {'method':'get','headers':dataHeaders};
var dataResponse = UrlFetchApp.fetch(dataURL,dataOptions);
Logger.log(dataResponse);
}
在我成功登录网站之前,dataResponse 不会返回任何日志,我的代码有什么问题吗?