Autor Thema: Google -> Aktuelle Standortabfrage  (Gelesen 239 mal)

Offline stera

  • Full Member
  • ***
  • Beiträge: 244
Google -> Aktuelle Standortabfrage
« am: 09 Januar 2019, 03:04:46 »
Hallo zusammen,

irgendwann wurde das Thema auch schon mal angesprochen, aber wollte das gerne nochmal zum Thema machen.
Mich würde es immer noch freuen, wenn es irgendwann mal möglich ist, von Google seine aktuelle Position vom Handy abzufragen.
Mit der Geolocation API fragt man ja generell immer nur den Standort des aktuellen Gerätes ab und das hilft in diesem Fall leider nicht weiter.

Vor ein paar Tagen bin ich bei Google auf einen issue-Tracker gestoßen, wo jemand eine Möglichkeit gefunden hat, die freigegebenen Standortfreigaben in einer Textdatei herunter zu laden.
Eine API steht dafür wohl noch nicht zur Verfügung.

Die Datei zu verarbeiten ist generell ja nicht so schwer, nur die Datei vom "eingeloggten" GoogleKonto auf dem Raspberry zu bekommen. Es kann ja auch ein FakeGoogleKonto sein wo eine Standortfreigabe von den anderen Personen/Konten eingerichtet werden muss.

Ich würde mich freuen, wenn einer von Euch sich angesprochen fühlt und vll. Wege zur Integration in Fhem mit findet.

Hier ein paar Links:

https://www.google.com/maps/preview/locationsharing/read?authuser=0&hl=fr&gl=fr&pb=

https://issuetracker.google.com/issues/62938530

https://www.dkomputer.com/googleHome.html

https://github.com/costastf/locationsharinglib

Schöne Grüße,
SteRa

#!/bin/bash
cookies=("cookie1" "cookie2")
tmp1=`mktemp /tmp/gsl.XXXX`
tmp2=`mktemp /tmp/gsl.XXXX`
echo "user id;profile image;user;latitude;longitude;time;address;country code;battery level"
for i in "${cookies[@]}"; do
        cookie="$i"
        curl -s "https://www.google.com/maps/preview/locationsharing/read?authuser=0&hl=en&gl=en&pb=" --compressed -H "$cookie" > $tmp1
        tail -n +2 $tmp1|python -mjson.tool|sed '/^    ],/,+100 d'|tail -n +3 > $tmp2
        size=`wc -l $tmp2|cut -d" " -f1`
        iteration=`expr $size / 46`
        z=0
        while ! [ $z == $iteration ]; do
                m=`expr $z \* 46`
                userid=$(awk "FNR==$(expr $m + 3)" $tmp2|sed 's|,$||g'|sed -e 's/^ *//')
                profile_image=$(awk "FNR==$(expr $m + 4)" $tmp2|sed 's|,$||g'|sed -e 's/^ *//')
                user=$(awk "FNR==$(expr $m + 6)" $tmp2|sed 's|,$||g'|sed -e 's/^ *//')
                long=$(awk "FNR==$(expr $m + 16)" $tmp2|sed 's|,$||g'|sed -e 's/^ *//')
                lat=$(awk "FNR==$(expr $m + 17)" $tmp2|sed 's|,$||g'|sed -e 's/^ *//')
                ts=$(awk "FNR==$(expr $m + 19)" $tmp2|sed 's|,$||g'|sed -e 's/^ *//'|sed 's|...$||g')
                time=`date -d @$ts`
                address=$(awk "FNR==$(expr $m + 21)" $tmp2|sed 's|,$||g'|sed -e 's/^ *//')
                cc=$(awk "FNR==$(expr $m + 23)" $tmp2|sed 's|,$||g'|sed -e 's/^ *//')
                bat=$(awk "FNR==$(expr $m + 44)" $tmp2|sed 's|,$||g'|sed -e 's/^ *//')
                echo "$userid;$profile_image;$user;$lat;$long;$time;`echo -e $address`;$cc;$bat"
                ((z++))
        done
done
rm -f $tmp1
rm -f $tmp2