我尝试使用Google Apps脚本登录网站以下载一些CSV文件并解析页面未成功。但是,该站点似乎在提交表单中使用了真实性令牌。我在网上找到的所有示例(仅一个示例)都解决了一种简单的情况,即仅用户名和密码,或者传递cookie就足够了。但是,我无法弄清楚如何修改解决令牌的示例。
首先,我做了类似的事情:
var payload = {
"user[username]":"username",
"user[password]":"password"
};
var opt ={
"method":"post",
"payload":payload,
"followRedirects" : false
};
var url = "https://www.somethirdpartysite.com/users/sign_in"
var loginResponse = UrlFetchApp.fetch(url, opt);
Logger.log(loginResponse.getResponseCode());
返回的响应是代码200(未登录)。
我发现我可能需要对下一个以下请求使用Cookie:
var sessionDetails = loginResponse.getAllHeaders()['Set-Cookie'];
var hearders = {
"Cookie" : sessionDetails
}
var optionsCsv = {
"headers" : headers,
"method" : "post"
}
var downloadCsvResponse = UrlFetchApp.fetch(urlToCsv, optionsCSV);
Logger.log(downloadCsvResponse.getContentText())
但是,响应为200个代码。
关于真实性令牌的参考link。