2017-08-10 69 views
1

我目前正在從事一個項目,我想自動添加有關公司或專業人士的信息。我知道有一個Waze API(由Google託管),但它們不提供添加或修改地圖信息的可能性。有一個「UI方式」用map editor來修改地圖信息。如果有人有一個棘手的解決方案...我會接受!自動添加興趣點

回答

2

這是可能的,但不是很容易。

您可以模擬您的網絡瀏覽器所做的呼叫,以便在Waze Map Editor中添加地點(使用瀏覽器的網絡監視器查看發送的請求)。基本上,您需要加載索引頁來檢索會話令牌cookie,使用該令牌和您的登錄憑據啓動會話,然後發送您在編輯器中保存編輯時發送的數據(它位於該請求中你會調整你想要添加的地方以及你想添加的地方)。您需要注意的主要問題是,每次請求時,Cookie都會使用新的CSRF令牌進行更新。

登錄後,以下網址可以接收HTTP POST請求:https://www.waze.com/row-Descartes/app/Features?language=en用,例如,下面的數據:

{ 
    'actions': { 
    'name': 'CompositeAction', 
    '_subActions': [ 
     { 
     'name': 'AddLandmark', 
     '_subActions': [ 
      { 
      '_objectType': 'venue', 
      'action': 'ADD', 
      'attributes': { 
       'geometry': { 
       'type': 'Point', 
       'coordinates': [ 
        ??.????, 
        ??.???? 
       ] 
       }, 
       'categories': [ 
       'OTHER' 
       ], 
       'name': '', 
       'description': '', 
       'rank': 0, 
       'lockRank': 0, 
       'url': null, 
       'phone': null, 
       'brand': null, 
       'residential': false, 
       'openingHours': [ 
       ], 
       'categoryAttributes': { 
       }, 
       'services': [ 
       ], 
       'entryExitPoints': [ 
       ], 
       'images': [ 
       ], 
       'venueUpdateRequests': [ 
       ], 
       'aliases': [ 
       ], 
       'approved': true, 
       'externalProviderIDs': [ 
       ], 
       'adLocked': false, 
       'permissions': 2147483647, 
       'streetID': ????, 
       'id': - 100 
      } 
      } 
     ] 
     }, 
     { 
     '_objectType': 'venue', 
     'action': 'UPDATE', 
     'attributes': { 
      'name': 'Test', 
      'id': - 100 
     } 
     }, 
     { 
     '_objectType': 'venue', 
     'action': 'UPDATE', 
     'attributes': { 
      'description': 'To remove', 
      'id': - 100 
     } 
     } 
    ] 
    } 
} 

正如你所看到的,你需要填寫座標(我想你會有)以及其他各種領域。最好也可以指定該地點所在的確切地址,但這需要您檢索附近街道的ID。如果你不想陷入麻煩,你也可以省略streetID字段。我已經測試過,而且工作得很好。另外,在WME中,這個變化被分成幾個單獨的動作(一個'複合'動作)。您可以將所有數據放在第一個操作中,並刪除兩個更新操作。

我前段時間在Java中做過類似的工作,在Waze Map Editor中監聽聊天內容。部分日誌記錄完美無瑕,因此可以取消。

+0

謝謝您的迴應,我會嘗試,但這是由Waze以「合法」方式接受的。事實上,如果我開發一個可以更新你的Waze狀態的公共應用程序,你的逆向工程解決方案是否合法供公衆使用? – digitalTrilunaire

+0

這是我無法爲他們回答的問題,恐怕。但是我懷疑只要數據是正確的,他們就不會介意,而且你也不想繞過自動化的任何限制。 – Glodenox

+0

由於CSRF令牌的存在,您不得不繞過任何內容。感謝您的幫助@Glodenox! – digitalTrilunaire