Die geänderte Version ist jetzt im develop branch.
Gruß
Wolfram
Ankündigung
Einklappen
Keine Ankündigung bisher.
Google Calendar - update für "neue" GoogleAPI
Einklappen
X
-
So. Hier mal ein erster Schuss. In meinen Tests hat die Authorisierung sowohl bei einem Domain-Namen als auch bei der internen IP-Adresse des smartVISU-Servers funktioniert. Die beiden angehängten Dateien müssen anstelle der ./lib/base/config.js und ./pages/base/config.google.html eingespielt werden.
Kannst Du das mal testen? Es sollte eigentlich ausreichen, die bereits heruntergeladene JSON-Datei mit den Credentials zu laden und dann auf "Authorisieren" zu klicken.
Wenn das klappt, werde ich noch den etwas geänderten Ablauf auf der Google Developer Seite in die Schritt-für-Schritt-Anleitung einarbeiten.
Gruß
Wolfram
Einen Kommentar schreiben:
-
Hi Wolfram,
Danke für deinen Support ! Spiele gerne den Tester!
Einen Kommentar schreiben:
-
Offenbar hat Google schon wieder die Bibliotheken geändert, so dass in smartVISU die Authentifizierung nur noch mit bereits bestehenden Kalendern klappt. Das muss ich mir näher ansehen. Komme aber frühestens nächste Woche dazu.
Gruß
Wolfram
Einen Kommentar schreiben:
-
Hi Wolfram,
wie dich vermutlich nicht wundert hattest du recht mit der Klammer...
Ich denke das ist das Problem: ou have created a new client application that uses libraries for user authentication or authorization that are deprecated. New clients must use the new libraries instead.HTML-Code:[io.smarthomeng] sending data: {"cmd":"monitor","items":[]} io_smarthomeng.js:343:12 global_cache: Cache directory is writeable jquery-2.2.4.min.js line 2 > eval:3:12 pages_cache: Cache directory is writeable jquery-2.2.4.min.js line 2 > eval:3:12 cookie_cache: Cache directory is writeable jquery-2.2.4.min.js line 2 > eval:3:12 [io.smarthomeng] receiving data: {"cmd": "item", "items": []} io_smarthomeng.js:240:12 [animation.redraw] animation.js:46:10 Feature Policy: Unbekannte Funktionalität (Feature) "identity-credentials-get" wird ignoriert. cb=gapi.loaded_0:183:73 Feature Policy: Unbekannte Funktionalität (Feature) "identity-credentials-get" wird ignoriert. cb=gapi.loaded_0:183:359 Feature Policy: Unbekannte Funktionalität (Feature) "identity-credentials-get" wird ignoriert. cb=gapi.loaded_0:183:376 Warnungen zu Content-Security-Policy 2 Diese Seite befindet sich im Kompatibilitätsmodus (Quirks). Das Seitenlayout kann beeinflusst werden. Verwenden Sie für den Standardmodus "<!DOCTYPE html>". iframe Content-Security-Policy: (Report-Only-Regel) Die Einstellungen der Seite haben die Ausführung eines Scripts (script-src-elem) auf https://www.gstatic.com/_/mss/boq-identity/_/js/k=boq-identity.IdpIFrameHttp.de.mJtG8ypGaBY.es5.O/am=AAY/d=1/rs=AOaEmlHuix6irBLO7JNyRW9m1HpLxRqemg/m=base blockiert, da er gegen folgende Direktive verstößt: "script-src 'unsafe-inline' 'unsafe-eval' blob: data:" iframe Für "https://accounts.google.com/o/oauth2/iframe#origin=http%3A%2F%2F192.168.178.27.nip.io&rpcToken=628304342.1009234" wurde partitionierter Cookie- oder Speicherzugriff verwendet, da es im Kontext eines Drittanbieters geladen wurde und dynamische Zustandspartitionierung aktiv ist. m=base:116:309 Das Öffnen mehrerer Popups wurde aufgrund fehlender Benutzeraktivierung blockiert. cb=gapi.loaded_0:170:292 Speicherzugriff automatisch erlaubt für Quelle "http://192.168.178.27.nip.io" auf "http://192.168.178.27". googleAuthError: Object { error: "idpiframe_initialization_failed", details: "You have created a new client application that uses libraries for user authentication or authorization that are deprecated. New clients must use the new libraries instead. See the [Migration Guide](https://developers.google.com/identity/gsi/web/guides/gis-migration) for more information." } index.php:59:15 [notify.error] id = 3: Google authentication - idpiframe_initialization_failed base.js:1044:11 Uncaught idpiframe_initialization_failed jquery-2.2.4.min.js line 2 > eval:143:5 jQuery 3 <anonym> dispatch handle
Einen Kommentar schreiben:
-
Hast Du wie oben angegeben die geschweiften Klammern eingefügt? Im Code oben in der 2. und der 6. Zeile.
Die Fehlermeldung "unexpected token 'else'…" spricht dafür, dass mit den Klammern etwas schief gelaufen ist. Achtung auch beim Kopieren des Codes aus dem Post: hierbei werden häufig nicht druckbare Leerzeichen eingefügt.
Gruß
Wolfram
Einen Kommentar schreiben:
-
Hi Wolfram,
habe den Code eingefügt. Jetzt kann ich die Autorisierung nicht mehr starten. Die Console sagt folgendes:
Sieht für mich aus als ob iene Klammer oder ähnlichesa fehlt. Habe leider von html absolut keine Ahnung.HTML-Code:index.php?page=config:88 [root.html] first init of driver io_smarthomeng.js:213 [io.smarthomeng] opening websocket on ws://192.168.178.27:2424 animation.js:39 [animation.prepare] io_smarthomeng.js:347 [io.smarthomeng] web socket not ready: {"cmd":"monitor","items":[]} base.js:1044 [notify.info] id = 1: Configuration - Die Konfiguration wurde erfolgreich gespeichert. index.php?page=config.google:61 Uncaught SyntaxError: Unexpected token 'else' (at index.php?page=config.google:61:6) animation.js:46 [animation.redraw] io_smarthomeng.js:343 [io.smarthomeng] sending data: {"cmd":"proto","ver":4} io_smarthomeng.js:343 [io.smarthomeng] sending data: {"cmd":"identity","sw":"smartVISU","ver":"v3.5.0", "browser":"Chrome","bver":"134"} io_smarthomeng.js:343 [io.smarthomeng] sending data: {"cmd":"monitor","items":[]} index.php?page=config:455 global_cache: Cache directory is writeable index.php?page=config:2068 pages_cache: Cache directory is writeable index.php?page=config:3681 cookie_cache: Cache directory is writeable io_smarthomeng.js:240 [io.smarthomeng] receiving data: {"cmd": "proto", "ver": 4.1, "server": "module.websocket", "time": "2025-03-22T09:53:06.298366"} io_smarthomeng.js:240 [io.smarthomeng] receiving data: {"cmd": "item", "items": []} index.php?page=config.google:73 Uncaught ReferenceError: grantOfflineAccess is not defined at HTMLBodyElement.onclick (index.php?page=config.google:73:38) onclick @ index.php?page=config.google:73
Gruß
Einen Kommentar schreiben:
-
In ./Pages/base/config.google.html ist in Zeile 56 folgender Code:
Den könntest Du mal erweitern zuCode:function(resp) { if (resp.error) // possible errors: idpiframe_initialization_failed (with subtype), popup_closed_by_user, popup_blocked_by_browser, access_denied, immediate_failed params.window.postMessage({ subject: 'googleauth', error: { code: resp.error, message: resp.error_subtype } }, params.origin);
Achte dabei auf die zusätzlichen geschweiften Klammern um den Code für die if-Anweisung. In der Konsole sollte dann hoffentlich das Objekt für die Antwort angezeigt werden. Wenn Du das öffnen kannst, sollten weitere Details zu dem Fehler angezeigt werden.Code:function(resp) { if (resp.error){ // possible errors: idpiframe_initialization_failed (with subtype), popup_closed_by_user, popup_blocked_by_browser, access_denied, immediate_failed console.log('googleAuthError:', resp); params.window.postMessage({ subject: 'googleauth', error: { code: resp.error, message: resp.error_subtype } }, params.origin); }
Lässt sich das Objekt nicht öffnen (weil der iFrame schon geschlossen ist), dann kannst Du 'resp' in der console.log-Zeile durch 'resp.error_subtype' ersetzen. Möglicherweise ist das aber ein Relikt aus der alten Bibliothek und es muss jetzt 'resp.details‘ heißen. Sorry für die Konjunktive, aber ich kann das gerade nicht selbst testen.
Die Google API Referenz sagt zu dem Fehler folgendes:
Grußidpiframe_initialization_failed: Failed to read the 'localStorage' property from 'Window'
Dieser Fehler tritt auf, wenn Drittanbieter-Cookies und die Datenspeicherung nicht aktiviert sind in Ihrem Browser. Diese Optionen sind für die Google Log-in-Bibliothek erforderlich. Weitere Info finden Sie unter Drittanbieter-Cookies und Datenspeicherung Hinweis :In Ihrer eigenen App sollten Sie die Nutzer auffordern, Drittanbieter-Cookies und Datenspeicherung zu aktivieren, oder eine Ausnahme für accounts.google.com hinzuzufügen.
idpiframe_initialization_failed: Not a valid origin for the client
Dieser Fehler tritt auf, wenn die registrierte Domain nicht mit der Domain übereinstimmt, auf dem die Webseite gehostet wird. Achten Sie darauf, dass der von Ihnen registrierte Ursprung mit der URL übereinstimmt im Browser.
Wolfram
Einen Kommentar schreiben:
-
Hi Wolfram,
konnte heute erst testen. Die Entwicklerconsole sieht so aus:
grafik.png
Da waren weitere Dinge drin aber ich habe die Sicherheitseinstellungen runter geschraubt und die Meldungen waren weg. Problem bleibt aber bestehen.
Die Fehlermeldungen sind diese:
grafik.png
grafik.png
Das sind dir beiden FehlermeldungenAngehängte DateienZuletzt geändert von himself; 19.03.2025, 14:23.
Einen Kommentar schreiben:
-
Wie lautet denn die Fehlermeldung genau? Falls der Fehler „idpiframeinitialization failed." auftritt, liefert das Skript den Grund mit. Der Fehler sollte auch im roten Dreieck oben links angezeigt werden.
Gibt es Meldungen in der Entwicklerkonsole des Browsers?
Gruß
Wolfram
Einen Kommentar schreiben:
-
Hi Wolfram,
ich verwende die aktuelle Version, 3.5. Die Lösungshinweise habe ich auch gefunden, verstehe sie ehrlich gesagt aber nicht. Die eine, die etwas von 3rd party cockies schreibt hat nicht geholfen.
Die Dinge aus deinen Post 272 habe ich alle durchgeführt, leider ohne Veränderung. Bin tatsächlich etwas ratlos. Vielleicht hilft noch die Information dass der Dialog nicht schliesst nachdem ich das Google-PopUp-Fenster abgeschlossen habe.
Einen Kommentar schreiben:
-
Welche Version von smartVISU verwendest Du? v3.4 sollte es mindestens sein.
Gibt es weitere Info zu dem Fehler "idpiframeinitialization failed."? Wenn man diesen googelt, gibt es einige Lösungshinweise.
Gruß
Wolfram
EDIT: habe gerade den Anmeldeprozess durchlaufen - allerdings mit localhost. Da ich gerade keinen Testserver habe, kann ich die Autherntifizierung mit IP-Adresse nicht testen. nip.io existiert aber noch und sollte so funktionieren. Siehe Punkt 3 im Post 272.Zuletzt geändert von wvhn; 16.03.2025, 23:51.
Einen Kommentar schreiben:
-
Hallo zusammen,
ich wollte heute den Google Kalender einbinden. Soweit klappt alles wie beschrieben. Allerdings bekomme ich nach Durchlaufen/durchklicken des Authorisierungsfensters den Fehler: "idpiframeinitialization failed."
Der Kalender wird nicht in der config.ini angelegt.
Ich kann das zwar manuell tun aber ohne token bringt es natürlich nichts, und den kann ich dem json. File nicht entnehmen.
Was mir aufgefallen ist: Die Testuser Freigabe kann ich erst nach Erstellen der Webanmeldung machen. Ich denke das spielt keine Rolle aber ansonsten funktioniert es genauso wie im HowTo beschrieben ist.
Der Fehler bei Aufrum der index Seite lautet: "HTTP request failed! HTTP1.1: 400 Bad request. Unable to retrieve access token."
Einen Kommentar schreiben:
-
Moin Michael,
es gibt nur eine config.ini für smartVISU und die liegt im Hauptverzeichnis von smartVISU (i.d.R /var/www/html/smartVISU). Folgende Schlüssel musst Du in die config.ini der aktuellen Installation übertragen:
die Zugangsdaten werden jeweils zwischen die Anführungszeichen gesetzt.Code:calendar_google_client_id = "" calendar_google_client_secret = "" calendar_google_refresh_token = ""
Gruß
Wolfram
- Likes 1
Einen Kommentar schreiben:


Einen Kommentar schreiben: