我最近发现,在通过Google会话Cookie进行身份验证时,您可以请求以下网址:
https://www.google.com/maps/preview/locationsharing/read?authuser=0&hl=fr&gl=fr&pb=
这将返回带有所有位置共享数据的一种JSON对象。没有用于此数据的官方API。
如何在Google Apps脚本中提出此请求?我知道我需要从网络工具复制Google Maps存储部分中的cookie之一,然后将其放入类似以下功能中:
function refreshLocation() {
var params = {
'headers': {
'Cookie': "the-cookie-i-copied"
}
};
return UrlFetchApp.fetch("https://www.google.com/maps/preview/locationsharing/read?authuser=0&hl=fr&gl=fr&pb=", params)
}
但是我不清楚要查找和使用哪个cookie。
编辑:我已经取得了进步!我可以在等待google.com/maps加载的同时,在Developer Tools中观察网络请求瀑布,并且在上面找到了该页面对该URL的实际请求。检查该请求时,我在“请求Cookie”部分中找到了一个很长的字符串,然后将其复制并粘贴到上面的代码块中即可使用!
如果有人对如何自动刷新该Cookie有任何想法,那将会很成功。
编辑2 :好的。通过对经过身份验证的Google Maps会话的非常长的Cookie字符串进行反向工程,我发现您只需要使用UrlFetchApp
包含四个Cookie参数:SID
,HSID
,{{ 1}}和SSID
。如果您包含具有这四个参数的Cookie字符串,它将返回数据。像这样:
SAPISID
任何人都不知道如何将OAuthToken转换为会话cookie的这些部分吗?