Ankündigung

Einklappen
Keine Ankündigung bisher.

Google Calendar - update für "neue" GoogleAPI

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Die Google API schreibt nun vor: URIs must use the HTTPS scheme, not plain HTTP.

    smartVISU schlägt bei mir aber http://192.168.xx.yy.nip.io vor. Ich habe Goggle konform in der Google Developer Console die URI der Autorisierten JavaScript-Quelle nach https://192.168.xx.yy.nip.io geändert.
    Ich bekomme bei der Autorisierung dann folgenden Fehler:

    Problem: Fehler bei der Autorisierung

    Fehler 400: redirect_uri_mismatch
    The JavaScript origin in the request, http://192.168.xx.yy.nip.io, does not match the ones authorized for the OAuth client. Visit https://console.developers.google.co...s.googleuserco ntent.com?project=123 (anonymisiert) to update the authorized JavaScript origins.

    stoepfDer Trick mit der dynamischen Adresse würde mich auch interessieren.

    Viele Grüße

    Kommentar


      In der ./lib/base/base.js wird in Zeile 1848 der oben erwähnte JavaScript Origin gesetzt:
      Code:
      googleOrigin = location.origin.replace(location.hostname, location.hostname + '.nip.io');
      Nach Deiner Änderung in der Google Developers Console musst Du hier sicherlich auch https verwenden. Als quick and dirty Versuch ohne Gewähr kannst Du nach der Zeile eine neue Zeile einfügen und dort folgendes eingeben:
      Code:
      googleOrigin = googleOrigin.replace('http:', 'https:');
      Falls Du eine Sicherheitskopie der base.js anlegst, vermeide die Endung .js, da dies zu Konflikten führen kann.

      Gruß
      Wolfram

      Kommentar


        Ich denke nur auf https umstellen wird nichts bringen, weil es dafür kein gültiges Zertifikat gibt.

        Ich hatte bereits einen ReverseProxy konfiguriert. Hab dann die Seite einfach darüber (https://meinedynamischeip.de/smartVISU) aufgerufen.
        Da war dann auch gleich die richtige Adresse eingetragen und ich konnte die Authentifizierung durchführen.
        Zuvor hatte ich die gleiche Adresse in der Google Developer Console als URI eingetragen.

        Hoffentlich hilft dir das.

        Viele Grüße
        Stefan

        Kommentar


          Danke für die Hinweise. Stefan hat recht. Ohne Zertifikat verweigert der Browser nach der Änderung in base.js den Zugriff:
          Kein Verbindungsversuch unternommen: Mögliches Sicherheitsproblem
          Firefox hat ein mögliches Sicherheitsrisiko erkannt und daher 192.168.xx.yy.nip.io nicht aufgerufen, denn die Website benötigt eine verschlüsselte Verbindung.

          Der ReverseProxy-Workaround ist für mich schon sehr aufwendig. Vielleicht gibt es ja noch eine einfachere Lösung des Problems...

          Viele Grüße

          Kommentar


            Kannst Du Firefox nicht dazu überreden, die Verbindung trotzdem zu öffnen? Am Zertifikat kann es IMHO nicht liegen, da nip.io sicher ein dem Browser bekanntes Zertifikat besitzt. Das Problem ist wahrscheinlich eher, dass Firefox den gemischten Betrieb ( unverschlüsselt zu smartVISU / verschlüsselt zu nip.io) nicht ohne weiteres akzeptiert.

            Gruß
            Wolfram
            Zuletzt geändert von wvhn; 03.06.2021, 13:32.

            Kommentar


              Das klappt leider nicht. Ich kann über den Dialog keine Ausnahme einfügen. Es wird nur dieser Link angeboten.

              Viele Grüße

              Kommentar


                Wenn für den Webserver (Apache oder nginx) Zertifikate vorhanden sind, dann müsstest Du smartVISU per https aufrufen können. Zwar bekommst Du dann keine Daten vom Backend über den Websocket, aber für die einmalige Autorisierung der Schlüssel bei Google könnte es reichen.
                Willst Du das nochmal probieren (mit der Änderung in der base.js)?

                Gruß
                Wolfram

                Kommentar


                  Hallo,

                  gibt es noch weitere Ideen? Ich schaffe es auch nicht mich bei Google zu authentifizieren da nur noch https Adressen bei Google hinterlegt werden können.

                  Leider sind in nginx keine Zertifikate abgelegt und die Konfiguration scheint wohl nicht so einfach zu sen.

                  vielen Dank

                  Kommentar


                    Hi, mir ist heute eine der NAS Platten im RAID verreckt.. Danach hat meine Synology offenbar die Web-Sachen neu aufgesetzt. Seitdem kriege ich beim Google Calender bei browser request auf die googleV3.php eine
                    [
                    {
                    "title": "Calendar: Google",
                    "text": "No such file or directory<br><br>Unable to retrieve access token."
                    }
                    ]

                    Über CLI via php googleV3.php kommt der Kalender.

                    Das Setup hat davor funktioniert, Einrichtung usw war ok. Ich glaube mich zu erinnern, dass ich damals eine PHP Extension aktivieren musste. CURL ist eigentlich schon an.
                    Erinnert sich noch jemand?

                    Kommentar


                      Laut Komplettanleitung müssen folgende php-Pakete installiert werden:
                      libawl-php, php-curl, php, php-json, php-xml, php-mbstring

                      Der Kalender braucht auf jeden Fall XML und json. Json braucht er wohl auch, um den Cache für das Access Token auszulesen.

                      Groß
                      Wolfram

                      Kommentar


                        hmm laut phpinfo ist das alles drin, via cli geht es ja auch.
                        er scheitert dann offenbar am file_get_contents mit den daten. zugriff auf URLs via allow_url_fopen ist On. Mal weiter untersuchen.

                        file_get_contents auf www.google.com geht - allerdings auch nur via CLI... Muss mal die Apache Settings weiter checken. phpinfo() als Webpage sagt aber alles wesentlich gesetzt.. Notfalls ziehe ich die SV halt auch endlich in nen Docker Container um...
                        Zuletzt geändert von psilo; 19.02.2022, 10:39.

                        Kommentar


                          hat sich geklärt, openssl hat als php extension noch gefehlt .. schande über mich

                          Kommentar


                            Hallo

                            wie ist hier der Stand der Dinge? Ich habe ein großes Update auf aktuelle smarthomeng / smartvisu durchgeführt und nun auch keinen Google Cal mehr. Selbst über https aufruf bekomme ich die auth scheinbar nicht hin. Das Fenster geht am Ende einfach zu und nix weiter passiert...Es gibt keine Fehlermeldung

                            Kommentar


                              Da Auth nicht klappt, habe ich einfach mal die client_id, client_scret und refresh_token hard in die neue googleV3.php geschrieben. Ein php -q googleV3.php ergibt jetzt:

                              Code:
                              [{"start":1697407200,"end":1697493600,"title":"Kalenderwoche 42 2023","content":"","where":"","color":"","link":"https:\/\/www.google.com\/calendar\/event?eid=*********************************************************************","calendarname":"Kalenderwochen","calendarcolor":"#7bd148"}]PHP Fatal error:  Cannot declare class calendar_google, because the name is already in use in /var/www/html/smartvisu/lib/calendar/service/googleV3.php on line 267
                              
                              ​
                              hängt das damit zusammen weil der Typ noch auf "Desktop" steht?

                              Kommentar


                                Der Code in googleV3.php ist seit smartVISU v2.9 nicht mehr verändert worden, außer dass ich das Fehlerhandling erweitert habe. Deshalb besteht bei einem Update von smartVISU nicht die Notwendigkeit, den Authentifizierungsprozess im Konfigurationsmenü erneut durchzuführen. Es reicht, einfach die Parameter 'calendar_google_client_id', 'calendar_google_client_secret', 'calendar_google_refresh_token' aus der bisherigen config.ini zu übernehmen.

                                Wenn diese Einträge in der config.ini stehen, kann man den Kalender wie folgt testen:
                                Code:
                                <DeineIP>/smartVISU/lib/calendar/service/googleV3.php?debug=1
                                Welche Meldungen gibt es dort?

                                Zitat von lexxmm Beitrag anzeigen
                                Das Fenster geht am Ende einfach zu und nix weiter passiert...Es gibt keine Fehlermeldung
                                Welches Fenster? Es gibt ein Popup mit den ganzen Anweisungen und dem Button "Authorisieren" und wenn man den klickt, öffnet sich ggfls. ein neues Browser-Fenster mit der Authorisierung bei Google. Gibt es Meldungen in der Browser-Konsole?

                                Da bei mir weitgehend Google-freie Zone ist, kann ich den Prozess nicht selbst durchführen / testen. Es wäre gut, wenn sich hier jemand die aktive Weiterentwicklung zur Aufgabe machen könnte.

                                Gruß
                                Wolfram

                                Kommentar

                                Lädt...
                                X