2017-08-10 14 views
1

私は現在プロジェクトに取り掛かっており、会社や専門家に関する情報を自動的に追加したいと考えています。 Waze API(Googleがホストしています)がありますが、マップ情報を追加または変更する可能性はありません。 map editorで地図情報を変更するための「UI方法」があります。誰かがトリッキーな解決策を持っている場合...私はそれを取るよ!自動的にポイントを追加

答えて

2

それは可能ですが、非常に簡単ではありません。

あなたはWazeのマップエディタ(リクエストが送信されているかを確認するには、ブラウザのネットワークモニタを使用)内の場所を追加するために、Webブラウザによって行われた呼び出しを模倣することができます。基本的には、インデックスページを読み込んでセッショントークンクッキーを取得し、そのトークンとログインクレデンシャルとのセッションを開始し、エディタで編集内容を保存するときに送信するデータを送信する必要があります追加する場所と追加する場所を調整します)。あなたが気を付けなければならない主なことは、各リクエストでクッキーが新しいCSRFトークンで更新されるということです。

ログイン後、以下のURLは、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の中にこの変更は、いくつかの別々のアクション(「複合」アクション)に分割されます。最初のアクション内にすべてのデータを置き、2つの更新アクションを削除するだけです。

私はWazeのマップエディタ内でチャットを盗聴するためにしばらく前にJavaで同様のものを作りました。ロギングの部分は完璧にそこに行くので、やってみることができます。

+0

あなたの回答をありがとう、私はそれを試みますが、これはWazeの "合法的な"方法で受け入れられています。実際、Wazeのステータスを更新できる公開用のアプリケーションを開発すると、リバースエンジニアリングソリューションは公開されていますか? – digitalTrilunaire

+0

それは私がそれらのために答えることができない何かです、私は恐れています。しかし、私は彼らがデータが正しい限り、あなたは気にしないだろうと思うし、あなたは自動化の制限をバイパスしようとしていません。 – Glodenox

+0

あなたの書き込みはCSRFトークンのため、何もバイパスされません。助けてくれてありがとう@Glodenox! – digitalTrilunaire

関連する問題