Google apps script 如何修复登录到需要CSRF令牌的网站时返回的错误代码500
我试图用谷歌应用程序脚本登录网站,但代码“var loginResponse=UrlFetchApp.fetch(loginURL,loginOptions);”,返回错误代码500 我试图在chrome开发工具中获取所有必要的数据并输入代码,但仍然没有成功。 编辑:我添加了函数grabData来获取令牌。我看到logger.log返回不同的令牌,可能这就是我无法登录的原因Google apps script 如何修复登录到需要CSRF令牌的网站时返回的错误代码500,google-apps-script,csrf,csrf-token,Google Apps Script,Csrf,Csrf Token,我试图用谷歌应用程序脚本登录网站,但代码“var loginResponse=UrlFetchApp.fetch(loginURL,loginOptions);”,返回错误代码500 我试图在chrome开发工具中获取所有必要的数据并输入代码,但仍然没有成功。 编辑:我添加了函数grabData来获取令牌。我看到logger.log返回不同的令牌,可能这就是我无法登录的原因 function getData() { var loginURL = "https://example.com/lo
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);
}
函数getData(){
变量loginURL=”https://example.com/login";
变量标记=抓取数据(“https://example.com/login",
'');
Logger.log(令牌);//Logger 1st
var dataURL=”https://example.com/c/daftar";
var loginPayload={
“_标记”:抓取数据(”https://example.com/login",'');,
“电子邮件”:example@email.com',
“密码”:“123456”
};
Logger.log(loginPayload);//Logger第二
变量头={
“连接”:“保持活动状态”,
“接受”:“text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed exchange;v=b3”,
“内容类型”:“应用程序/x-www-form-urlencoded”,
“Cookie”:“XSRF-TOKEN=EYJPDII6INJYZBMAMNXC1WVEDRDAVRRVCCTIBNF3PT0ILCJ2YWX1ZSI6IMKZMFRUUR0MVBQDTV0NWQNWQRMDVVWU2LLNRQJFXOSS0TJVTRMNZMO0MUFQZVRGS21CL3LFFN4R1PVEDLBS2X1TMVVVZ6YUJJJJJ0IJJJ0IIBWJJJJJJJJJJJ2NZJ2NZYNZYNZYNZYNJ2YNJJJ0FK2YNJJJJJ0FZZ2YNZ2YZYNJ2FZZYNJ2F2FZYZZZZZ9FZZYNZYNJ9Y2FJJJJJ2FZZY2FZZZZHBHVLIJOITXBZZGREZFWVAK91TLLAAKTKALWVR10RFQZAMC5BXD2UMY3WW94UWWZ2WWWZ2WWZ2WZ2WZ2WZZ2WZ2NZZDZBNYTDK5B0JQANQCFBYVLJIAWLXU1WVSLE9PSISIM1HYIJA5MDKMZHOTNHZWWWW5MWIGMGNTFIOWEZJJJJJJZVYMYMJ2VZYMJJJJJYMJJJYMZYMZYMZJJZJJJJJJJJZYMZYMZYMZZZ,
“用户代理”:“Mozilla/5.0(Windows NT 6.1)AppleWebKit/537.36(KHTML,如Gecko)Chrome/76.0.3809.100 Safari/537.36”
};
变量登录选项={
“有效负载”:loginPayload,
'方法':'POST',
“标题”:标题
“followRedirects”:false
};
var loginResponse=UrlFetchApp.fetch(loginURL,loginOptions);
var loginHeaders=loginResponse.getAllHeaders();
var cookie=[loginResponse.getAllHeaders()[“设置cookie”];
cookie[0]=cookie[0]。拆分(“;”)[0];
cookie=cookie.join(“;”);
var dataHeaders={'Cookie':Cookie};
var dataOptions={'method':'get','headers':dataHeaders};
var dataResponse=UrlFetchApp.fetch(dataURL,dataOptions);
Logger.log(数据响应);
}
在我成功登录网站之前,dataResponse不会返回任何日志,我的代码是否有任何错误?您拼写错误了
followRedirects
(应该是大写字母R)。这解决了问题吗?嗨,ziganotschka,谢谢你的快速回复,我已经更正了拼写,但还没有解决你拼写错误的问题followRedirects
(应该是大写字母R)。这能解决问题吗?嗨,ziganotschka,谢谢你的快速回复,我已经纠正了拼写,但还没有解决问题