Ankündigung

Einklappen
Keine Ankündigung bisher.

GCal liefert forbidden Fehlermeldung

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

    GCal liefert forbidden Fehlermeldung

    Nabend zusammen,

    ohne jegliche Änderung (jaja, das behaupten sie alle) funktioniert der Download des GCal-Kalenderfeeds nicht mehr. Bis heute um kurz vor fünf lief es problemlos und ich habe keine neuen Versionen eingespielt oder Konfigurationen geändert. Anhand des Logs sehe ich dass um 16:42 zum letzten Mal der Feed erfolgreich abgeholt wurde:

    Code:
    16:42:26.975 DEBUG org.openhab.io.gcal.internal.GCalEventDownloader[197]- Downloading calendar feed for time interval: 2014-11-17T15:42:26.974Z to  2014-11-17T16:02:26.974
    16:42:27.263 DEBUG org.openhab.io.gcal.internal.GCalEventDownloader[126]- found 2 calendar events to process
    Beim nächsten Versuch (aktuell lade ich alle 10 Minuten und dazwischen war kein Restart) sah das dann leider folgendermaßen aus:

    Code:
    16:52:27.460 DEBUG org.openhab.io.gcal.internal.GCalEventDownloader[197]- Downloading calendar feed for time interval: 2014-11-17T15:52:27.460Z to  2014-11-17T16:12:27.460
    16:52:27.533 ERROR org.openhab.io.gcal.internal.GCalEventDownloader[209]- downloading CalenerEventFeed throws exception: Forbidden
    Ich habe die URL überprüft und im Browser sehe ich den Feed wenn ich am Ende die URL auf "basic" enden lasse. Sobald ich dies wie gewohnt und in der Doku für den Einsatz des Bindings gefordert auf "full" ändere erhalte ich wieder den HTTP code 403 (forbidden). Mit anderen Worten :

    gcal:url=https://www.google.com/calendar/feeds/5o8c6eo236m2hsg03nvicq2fcs%95group.calendar.google .com/private-63f37593765f927e164587a7365aa835/basic

    ... liefert verständlicherweise eine Response welche so nicht vom Binding erwartet wird (aber scheinbar geht die Anmeldung durch) :

    HTML-Code:
    23:20:04.355 ERROR org.openhab.core.service.AbstractActiveService[175]- Error while executing background thread Google Calender Event-Downloader
    java.lang.IllegalStateException: TextConstruct object is not a PlainTextConstruct
            at com.google.gdata.data.BaseEntry.getPlainTextContent(BaseEntry.java:358)
            at org.openhab.io.gcal.internal.GCalEventDownloader.processEntries(GCalEventDownloader.java:267)
            at org.openhab.io.gcal.internal.GCalEventDownloader.execute(GCalEventDownloader.java:133)
            at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:173)
    Aber die korrekte URL ...

    gcal:url=https://www.google.com/calendar/feeds/5o8c6eo236m2hsg03nvicq2fcs%95group.calendar.google .com/private-63f37593765f927e164587a7365aa835/full

    ... liefert die "forbidden" Fehlermeldung.

    Kann es sein dass Google hier eine Änderung durchgeführt hat und die Full-Version nicht mehr unterstützt ... oder eine andere URL dafür vorsieht ? Hat noch wer das Problem seit heute ?

    Falls nicht dann muß ich mal am Wochenende den Debugger anschmeißen. Es will mir nur nicht in den Kopf das dies von einem Moment zum anderen passiert denn um die Uhrzeit war ich nichtmal zu hause um etwas kaputt zu konfigurieren und sonst hat niemand entsprechenden Zugriff.

    P.S.: achja, die in den oben angegebenen URLs befindlichen IDs habe ich vor dem Posten natürlich verkrüppelt. Nur für den Fall dass wer sich wundert warum bei der "basic-Variante" ein "Invalid User" zurückkommt.

    #2
    Hallo.

    Ich habe seit ziemlich genau der gleichen Uhrzeit dasselbe Phänomen. Von daher denke ich das Google etwas geändert hat.

    Ich komme aber auch erst kommende Woche dazu das zu analysieren.

    Thomas

    Kommentar


      #3
      Danke für die Rückmeldung. Ich bin sicher dass wir eine Lösung finden werden. Vielleicht läßt sich der Parser auch für die Basic-Variante anpassen welche ja noch funktioniert oder aber wir finden noch heraus ob Google die Full-Variante des Feeds nur anders anbietet.

      Bis dahin werde ich aber wohl oder uebel die Kalendereintraege in cron-rules umwandeln so dass ich nicht erfrieren muss (aktuell senke und hebe ich die Solltemperatur der einzelnen Thermostate darüber und es wird langsam auch im Rheinland kühler) ;-).

      Kommentar


        #4
        Ach, verrückt. Wollte das Binding heute morgen einrichten und nach mehrfachen Versuchen bin ich dann letztendlich verzweifelt und hier gelandet. Ich habe aktuell keine Idee, bin aber gespannt, ob jemand anders etwas herausbekommt.

        Zusatzinfo: Ich verwende 2-Faktor-Auth und bekomme unter dem folgendem Link keine Einstellmöglichkeiten geboten:

        Google added a new security feature which needs to be disabled for this method to work. Go to https://www.google.com/settings/security/lesssecureapps and allow access for less secure apps.

        Kommentar


          #5
          Bei mir tritt dieser Fehler das erste mal am 17.11. um 16:49:52 auf, der letzte erfolgreiche Zugriff lief 15 Minuten früher.

          Der Zugriff über die basic-Adresse funktioniert weiterhin, allerdings reicht die dem gCal-Binding ja nicht. Im Browser funktioniert der Zugriff auf die full-Adresse auch nicht.

          Achso, vergessen: Ich nutze keine 2-Faktor-Autentifizierung

          Kommentar


            #6
            Hallo,
            Fehler kann ich auch so bestätigen.
            Allerdings nutze ich seit geraumer Zeit das ganze etwas anders.
            Ich hole mir per http Binding sendHttpGetRequest(url) den kompletten Kalenderfeed (basic.ics)
            Dieser wird in einem String abgelegt und danach nach Start/Ende/Stichworten geparsed.
            Die Daten sende ich dann allerdings anders weiter, hier fehlt dann eine echte Auswertung bzw. Timer.
            Nur ganztägige Termine (Urlaub/Feiertag/Abwesenheit) bzw. gerade laufende Termine werden auch innerhalb von openHAB weiterverwendet.

            Holger

            PS: der Kalender kann recht groß werden, bisher habe ich damit keine Probleme, könnte mir aber vorstellen auf einem RasPi wird es vielleicht eng mit dem Speicher

            Kommentar


              #7
              Das ist natürlich auch eine Lösung wie man das Problem umgehen kann. Dem Umstand dass der Kalender recht groß werden kann begegnet die aktuelle Implementation ja geschickt indem sie den Zeitraum der zu liefernden Einträge einschränkt und dafür regelmäßig immer nur ein Stück weit in die Zukunft schaut. Zudem liefert sie mit der Möglichkeit komplette Scripte im Kalendereintrag haben zu können ein extrem mächtiges Werkzeug. Daher würde ich auch ungern darauf verzichten wollen.

              Ich denke das Problem ist in der Tatsache zu suchen dass die aktuelle Implementation auf das GData-Package von Google setzt und dieses ist in die Jahre gekommen und wohl auch schon deprecated. Daher können wir nicht jammern wenn Google da einfach etwas ändert. Eine Umstellung auf das aktuelle Google Calendar API könnte das Problem eventuell sauberer lösen oder andere Probleme hervorbringen ;-) .

              Aktuell habe ich leider auch wenig Zeit das mal zu probieren da es im Büro recht hektisch ist (konnte ja keiner ahnen dass in 1,5 Monaten das Jahr zu Ende ist). Eventuell schaffe ich am Wochenende mal da ein oder zwei Stündchen abzuknapsen.

              Aktuell habe ich daher meinen Kalendar erstmal in cron-Regeln abgebildet (ist ja dank der Regeln recht übersichtlich machbar - gefällt mir wirklich sehr). Damit ist natürlich nicht mehr die Flexibilität gegeben von überall den Zeitplan anpassen zu können aber es ist zumindest eine Übergangslösung.

              Kommentar


                #8
                Soweit ich das sehen kann, tritt der Fehler seit der Abschaltung des Google Calendar API v2 auf - habe das selbe Problem auf einigen Websiten von mir.

                Leider hat das neue API v3 einen komplett neuen Ansatz und ich nicht mehr so einfach nuten.

                Vermutlich hilft nur, diesen Teil der Software neu zu schreiben und das neue API zu nutzen.

                Kommentar


                  #9
                  Wie es aussieht nimmt sich bereits schon jemand der Sache an. Eine Implementation wird in den Google-Groups aktuell schon vertestet. Hier sind die Details so dass wir das Thema wohl hier schliessen können.

                  Kommentar


                    #10
                    Aloha,

                    ich habe jetzt in der Google Group das jar für gcal_1.5.1 heruntergeladen und die Doku für die OAuthentication befolgt. client_server.json habe ich auch,
                    aber irgendwie läuft da nix.

                    Hat jemand eine Idee wie ich das Troubleshooten kann? IN den Logs habe ich schon vergeblich geschaut. Momentan nutze ich openHAB 1.6.1.
                    Danke, Manolo

                    Kommentar


                      #11
                      Aus Zeitmangel habe ich das bislang noch nicht ausprobiert ... eventuell über die Feiertage mal. Grundsätzlich kannst Du das Logging hochdrehen indem Du für den Klassenpfad das Logging auf DEBUG setzt (in der entsprechenden Konfigurationsdatei - logback.xml oder so). Leider kann ich Dir kein Beispiel posten da ich das neue Modul noch nicht im Einsatz habe.

                      Wenn der Autor hier aber nicht viel Logging eingebaut hat dann hilft nur noch das Debuggen.

                      Kommentar


                        #12
                        Hallo!

                        Bedeutet also man kann momentan das Addon egal mit oder ohne Benützername/Passwort nicht nützen!?

                        LG Stefan

                        Kommentar

                        Lädt...
                        X