Недавно я обнаружил, что вы можете запросить следующий URL при аутентификации с помощью файлов cookie сеанса Google:
https://www.google.com/maps/preview/locationsharing/read?authuser=0&hl=fr&gl=fr&pb=
Возвращает объект своего рода JSON свсе ваши данные о местоположении.Официальных API для этих данных нет.
Как я могу сделать этот запрос в Google Apps Script?Я знаю, что мне нужно скопировать один из файлов cookie в моем разделе хранения Google Maps из веб-инструментов и, возможно, включить его в функцию, например:
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 , и нашел фактический запрос, который страница отправляет на этот URL-адрес выше.При проверке этого запроса я обнаружил очень длинную строку в разделе «Запрос куки», которая затем работала при копировании и вставке в приведенный выше блок кода!
Если у кого-то есть идеи по автоматизации обновления этогоCookie, это было бы здорово.
РЕДАКТИРОВАТЬ 2 : Хорошо.После обратного инжиниринга очень длинной строки Cookie аутентифицированного сеанса Google Maps я обнаружил, что вам нужно всего лишь включить четыре параметра Cookie, используя UrlFetchApp
: SID
, HSID
, SSID
и SAPISID
,Если вы включите строку Cookie с этими четырьмя параметрами, она вернет данные.Что-то вроде:
params = {
"headers": {
"Cookie": "SID=bdoFXEuLJQ5KmEQtC3OEzcqmL1uPGRF32T8AhSZ45XPfQ2toQCCk3khFwXHgRh1t6ciwJ6.; HSID=ENOHYuxdAxl0Ejemw; SSID=dZHZ3C8m0-jgLvcYm; SAPISID=Sdt1GD3GtaimggF5L/76Wi5OZhuwWu2W6V;"
}
};
var request = UrlFetchApp.fetch("https://www.google.com/maps/preview/locationsharing/read?authuser=0&hl=fr&gl=fr&pb=", params).getContentText();
Кто-нибудь знает, как превратить OAuthToken в эти части файла cookie сеанса?