2016-03-03 11 views
5

Ich versuche, meine GPS-Daten von der Waze App mit der rest-client Lib zu bekommen. Ich versuche grundsätzlich, einen Login über die Website https://www.waze.com/ zu fälschen. Nach dem Login (Sie können JohnDoeSpeedy228: gre @ tStory92) verwenden, wenn Sie https://www.waze.com/editor/ besuchen, klicken Sie auf "Laufwerke" nach Überprüfung der Netzwerkaufrufe erhalten Sie die rohen JSON-Daten zu sehen.Wie bekomme ich GPS-Daten von Waze mit Rest-Client?

Ich scheine erfolgreich angemeldet zu haben, aber wenn die antragstell die Liste aller meiner Laufwerke zurückzuversetzen die

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

Es sollte wie folgt zurück:

{ 
    "users":{ 
     "objects":[ 

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

Hier was ich versuche:

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'=>'[email protected]'} 

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) 

Mache ich etwas falsch?

Antwort

1

Meine Vermutung ist, dass Sie zwei Konten verwechseln. Sind Sie sicher, dass Sie ein Laufwerk geloggt haben, während Sie als JohnDoeSpeedy228 eingeloggt sind? Wenn es keine Sitzungen von diesem Benutzer gibt, wenn er manuell bei der Site angemeldet ist, würde ich nicht erwarten, dass der Code auch funktioniert.

Wir können keine Ihrer Laufwerke finden.

Haben Sie schon angefangen mit der Waze App zu fahren? Ist dies der Fall, stellen Sie sicher, dass Sie sich mit den in der App verwendeten Anmeldedaten im Map Editor angemeldet haben.

+0

100% keine Verwechslung von zwei Konten. – narzero

+0

10 Ja, aber ich meine, dass wenn Sie sich bei der manuellen Anmeldung nicht registrieren, warum sollten Sie erwarten, dass die REST-API sie zurückgibt? –

+0

Es gibt drei aufgezeichnete Reisen. – narzero