2016-03-03 35 views
5

Tôi đang cố gắng lấy dữ liệu GPS của mình từ ứng dụng Waze bằng cách sử dụng thư viện rest-client. Tôi đang cố gắng giả mạo thông tin đăng nhập qua trang web https://www.waze.com/. Sau khi đăng nhập (bạn có thể sử dụng JohnDoeSpeedy228: gre @ tStory92) khi bạn truy cập https://www.waze.com/editor/, nhấp vào "Drives" sau khi xem xét các cuộc gọi mạng bạn sẽ nhận được để xem dữ liệu JSON thô.Làm thế nào để nhận dữ liệu GPS từ Waze với phần còn lại của khách hàng?

tôi dường như đã thành công đăng nhập nhưng khi đưa ra yêu cầu phải trả lại danh sách tất cả các ổ đĩa của tôi nó trả về sau

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

Nó sẽ trả về một cái gì đó như thế này:

{ 
    "users":{ 
     "objects":[ 

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

Dưới đây là những gì tôi đang cố gắng:

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) 

Tôi có làm gì sai không?

Trả lời

1

Tôi đoán là bạn đang bối rối hai tài khoản. Bạn có chắc là bạn đã đăng nhập một ổ đĩa trong khi đăng nhập với tên JohnDoeSpeedy228 không? Nếu không có phiên nào từ người dùng đó khi đăng nhập vào trang web theo cách thủ công, tôi cũng không mong đợi mã hoạt động.

Chúng tôi không thể tìm thấy bất kỳ ổ đĩa nào của bạn.

Bạn đã bắt đầu lái xe bằng ứng dụng Waze chưa? Nếu vậy, hãy đảm bảo bạn đã đăng nhập vào Trình chỉnh sửa bản đồ với cùng thông tin đăng nhập bạn sử dụng trong ứng dụng.

+0

100% không có sự nhầm lẫn của hai tài khoản. – narzero

+0

Có, nhưng quan điểm của tôi là nếu không có chuyến đi được ghi lại khi bạn đăng nhập theo cách thủ công, tại sao bạn mong đợi API REST trả lại chúng? –

+0

Có ba chuyến đi được ghi lại. – narzero

Các vấn đề liên quan