Сценарий приложения, прошедший проверку подлинности UrlFetchApp Запрос к Google Maps с использованием файлов cookie - PullRequest
0 голосов
/ 07 сентября 2018

Недавно я обнаружил, что вы можете запросить следующий 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 сеанса?

...