2017-08-10 146 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