Как получить данные GPS из Waze с помощью rest-client?

Я пытаюсь получить данные GPS из приложения Waze, используя библиотеку rest-client. По сути, я пытаюсь подделать логин через веб-сайт https://www.waze.com/. После входа в систему (вы можете использовать JohnDoeSpeedy228:gre@tStory92) при посещении https://www.waze.com/editor/ , нажмите «Диски» после просмотра сетевых вызовов, которые вы получите, чтобы увидеть необработанные данные JSON.

Кажется, я успешно вошел в систему, но при запросе на возврат списка всех моих дисков он возвращает следующее

{"users"=>{"objects"=>[]}, "archives"=>{"totalSessions"=>0, "objects"=>[]}}

Он должен вернуть что-то вроде этого:

{
   "users":{
      "objects":[

      ]
   },
   "archives":{
      "totalSessions":1,
      "objects":[
         {
            "id":<REDACTED>,
            "userID":<REDACTED>,
            "existingRoadMeters":2839,
            "newRoadMeters":0,
            "totalRoadMeters":2839,
            "startTime":1456996197000,
            "endTime":1456996636000,
            "hasFullSession":true
         }
      ]
   }
}

Вот что я пытаюсь:

require 'rest-client'
require 'json'

GET_CSRF_URL = "https://www.waze.com/login/get"
SESSION_URL = "https://www.waze.com/login/create"
SESSION_LIST_URL = "https://www.waze.com/Descartes-live/app/Archive/List"
SESSON_DATA_URL = "https://www.waze.com/Descartes-live/app/Archive/Session"
AUTH = {'user_id'=>'JohnDoeSpeedy228','password'=>'gre@tStory92'}

req = RestClient.get(GET_CSRF_URL)
csrfhash = req.cookies
csrfhash['editor_env'] = 'row'
headers = {'X-CSRF-Token'=>csrfhash['_csrf_token']}

log = RestClient::Request.execute(
  method: :post,
  url: SESSION_URL,
  cookies: csrfhash,
  headers: headers,
  payload: AUTH
)

ses = RestClient::Request.execute(
  method: :get,
  url: SESSION_LIST_URL,
  cookies: log.cookies,
  payload: {'minDistance'=>1000,'count'=>50, 'offset'=>0}
)

puts JSON.parse(ses)

Я делаю что-то неправильно?


person narzero    schedule 03.03.2016    source источник


Ответы (1)


Я предполагаю, что вы путаете два аккаунта. Вы уверены, что зарегистрировали диск под именем JohnDoeSpeedy228? Если при входе на сайт вручную нет сеансов от этого пользователя, я бы не ожидал, что код тоже сработает.

Мы не можем найти ни один из ваших дисков.

Вы уже начали ездить с приложением Waze? Если это так, убедитесь, что вы вошли в редактор карт с теми же учетными данными, которые вы используете в приложении.

person Stephen Grimes    schedule 07.03.2016
comment
100% отсутствие путаницы двух аккаунтов. - person narzero; 13.03.2016
comment
Да, но я хочу сказать, что если нет записанных поездок, когда вы входите в систему вручную, почему вы ожидаете, что REST API вернет их? - person Stephen Grimes; 14.03.2016
comment
Зарегистрировано три поездки. - person narzero; 14.03.2016