Authentication 使用HTTP请求登录到网站的Google应用程序脚本
我的谷歌硬盘上有一个电子表格,我想从另一个网站下载一个CSV,并将其放入我的电子表格中。问题是我必须先登录到网站,所以我需要使用一些HTTP请求来完成这项工作 我已经找到了网站和。如果这两个网站中的任何一个都有答案的话,那么我显然对他们的理解不够,无法理解。有人能帮我弄清楚吗?我觉得第二个网站是特别接近我需要的,但我不明白它在做什么Authentication 使用HTTP请求登录到网站的Google应用程序脚本,authentication,google-apps-script,httprequest,Authentication,Google Apps Script,Httprequest,我的谷歌硬盘上有一个电子表格,我想从另一个网站下载一个CSV,并将其放入我的电子表格中。问题是我必须先登录到网站,所以我需要使用一些HTTP请求来完成这项工作 我已经找到了网站和。如果这两个网站中的任何一个都有答案的话,那么我显然对他们的理解不够,无法理解。有人能帮我弄清楚吗?我觉得第二个网站是特别接近我需要的,但我不明白它在做什么 为了再次澄清,我想使用HTTP请求登录,然后使用不同的URL调用同一个网站,这是获取CSV文件的调用 在过去的一个月里,我已经做了很多这方面的工作,所以我应该能够帮
为了再次澄清,我想使用HTTP请求登录,然后使用不同的URL调用同一个网站,这是获取CSV文件的调用 在过去的一个月里,我已经做了很多这方面的工作,所以我应该能够帮助您,我们正在尝试模拟浏览器的行为,因此首先您需要使用chrome的开发工具(或类似工具),并记下浏览器的具体操作,如发布的表单值、调用的url等。以下示例显示了要使用的常规技术: 第一步是登录网站并获取会话cookie:
var payload =
{
"user_session[email]" : "username",
"user_session[password]" : "password",
};// The actual values of the post variables (like user_session[email]) depends on the site so u need to get it either from the html of the login page or using the developer tools I mentioned.
var options =
{
"method" : "post",
"payload" : payload,
"followRedirects" : false
};
var login = UrlFetchApp.fetch("https://www.website.com/login" , options);
var sessionDetails = login.getAllHeaders()['Set-Cookie'];
我们已登录该网站(为了确认只需登录sessionDetails并将其与chrome设置的Cookie相匹配)。下一步完全取决于网站,所以我将给你一个一般的例子
var downloadPayload =
{
"__EVENTTARGET" : 'ctl00$ActionsPlaceHolder$exportDownloadLink1',
};// This is just an example it may or may not be needed, if needed u need to trace the values from the developer tools.
var downloadCsv = UrlFetchApp.fetch("https://www.website.com/",
{"headers" : {"Cookie" : sessionDetails},
"method" : "post",
"payload" : downloadPayload,
});
Logger.log(downloadCsv.getContentText())
现在应该记录该文件,然后可以使用hte GAS内置函数解析csv,并将数据转储到电子表格中
需要注意的几点:
- 我假设所有表单post值都是静态的,可以 硬编码,如果这不是真的,那么让我知道我会给你 一个可以从html中提取值的函数李>
- 一些网站要求浏览器发送令牌值(该值将出现在html中)以及凭据。在这种情况下,您需要提取值,然后发布它
用户名
和密码
,如果正确,则用户必须同时登录应用程序和第三方网站。你能帮我一下吗?@PavelValeriu我不确定我是否理解你的要求。请您详细解释一下,您登录应用程序是什么意思?你是如何在这里使用谷歌应用程序脚本的?。我建议你创建一个新帖子。我创建了一个新帖子,请在这里检查。有人想出了一种基于短信的两步身份验证登录的方法吗?