2017-08-10 2 views
1

Je travaille actuellement sur un projet et je souhaite ajouter automatiquement des informations sur une entreprise ou un professionnel. Je sais qu'il existe une API Waze (hébergée par Google), mais elle ne permet pas d'ajouter ou de modifier des informations cartographiques. Il existe un "moyen d'interface utilisateur" pour modifier les informations de carte avec map editor. Si quelqu'un a une solution délicate ... Je vais le prendre!Ajouter automatiquement Point d'intérêt

Répondre

2

Il est possible, mais pas tout à fait facile.

Vous pouvez imiter les appels effectués par votre navigateur Web afin d'ajouter des lieux dans l'éditeur Waze Carte (utilisez le moniteur réseau de votre navigateur pour voir ce que les demandes sont envoyées). Fondamentalement, vous devez charger la page d'index pour récupérer un cookie de jeton de session, démarrer une session avec ce jeton et vos informations de connexion, puis envoyer les données que vous envoyez lorsque vous enregistrez votre modification dans l'éditeur (dans cette requête que vous ajustez l'endroit que vous voulez ajouter et où vous voulez l'ajouter). La principale chose à surveiller est qu'à chaque requête, les cookies sont mis à jour avec un nouveau jeton CSRF.

Une fois connecté, l'URL suivante peut recevoir une requête HTTP POST: https://www.waze.com/row-Descartes/app/Features?language=en avec, par exemple, les données suivantes:

{ 
    '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 
     } 
     } 
    ] 
    } 
} 

Comme vous pouvez le voir, vous aurez besoin de remplir les coordonnées (ce que je suppose que vous aurez) et les différents autres domaines. Il serait également préférable que vous puissiez spécifier l'adresse exacte où ce lieu est situé, mais cela vous obligerait à récupérer l'ID de la rue à proximité. Si vous ne voulez pas vous lancer dans ce problème, vous pouvez également omettre le champ streetID. Je l'ai testé et cela fonctionne très bien.

En outre, dans le WME ce changement est divisé en plusieurs actions distinctes (une action « composite »). Vous pouvez simplement mettre toutes les données dans la première action et supprimer les deux actions de mise à jour.

J'ai fait quelque chose de similaire à Java il y a quelque temps à écouter sur le chat dans l'éditeur Waze Carte. La partie de l'enregistrement se passe parfaitement, il est donc possible de s'en tirer.

+0

Merci de votre réponse, je vais essayer, mais est-ce accepté d'une manière « légale » par Waze. En fait, si je développe une application à usage public qui peut mettre à jour votre statut Waze, votre solution d'ingénierie inverse est-elle légitime pour un usage public? – digitalTrilunaire

+0

C'est quelque chose dont je ne peux pas répondre pour eux, j'en ai peur. Mais je soupçonne qu'ils ne dérangeront pas tant que les données sont correctes et que vous n'essayez pas de contourner les restrictions avec l'automatisation. – Glodenox

+0

Vous écrivez, à cause du jeton CSRF, rien n'est contourné. Merci pour votre aide @Glodenox! – digitalTrilunaire