Scripte für den Google Kalender API V3

Hi ,

ich habe mich da auch mal rangesetzt und das auch hinbekommen , am ende nutzt man es eh nicht. Ist nur ein Terminplaner mehr :slight_smile:

Bei der Fehlermeldung kann es alles sein , den Dev Account haste eingetragen ?

Ich nutze derzeit (noch) die Google XML-Feeds, um eine Heizungssteuerung zu realisieren, die meinen Schicht-Dienstplan (per Google Kalender) kennt.
Leider schaltet Google diese Funktion Mitte November ab, daher muss ich meinen Kalender anders auslesen.

Ich habe soweit alles eingetragen, was sich finden liess:
ClientID
EMail
key_file_location
und calendar_login (wie auf der Google-Kalender Seite angegeben: Kalender-ID: heizung@xxxxxxx.xxx)
Meintest du letzteres mit „DEV.Account“?

OK, bin einen Schritt weiter. Der Kalender muss öffentlich gemacht werden und nicht nur für einzelne EMail-Adressen freigegeben werden.

Hilfe

erhalte beim Kalender auslesen folgende Fehlermeldung

Warning: require_once(google-api-php-client/autoload.php): failed to open stream: No such file or directory in C:\IP-Symcon\scripts\35733.ips.php on line 59

php client api habe im scripts ordener entpackt

Hoffe auf einen Tipp
Danke

direkt in scripts oder in scripts\google-api-php-client, wie in der Fehlermeldung zu sehen ;).

ich habe die phpclient zip datei von github im scripts ordner entpackt, nun habe ich im scripts ordner einen weiteren ordner mit dem namen google-api-php-client.

Eines ist klar, dies Skripte sind toll.
Das Auslesen meiner Kalender klappt nun problemlos.
Leider schaffe ich es nicht, mit dem entsprechenden Skript einen Termin zu schreiben.
Ich bekomme unten angegebene Fehlermeldung. Ich habe die selben Daten (Email, IDs etc) eingegeben, wie bei dem Ausleseskript und der Kalender ist zur Änderung von Terminen berechtigt.
Hat irgend wer das Ganze schon zum Laufen gebracht?


Fatal error:  Uncaught exception 'Google_Service_Exception' with message 'Error calling POST https://www.googleapis.com/calendar/v3/calendars/k5l7mgaacmsltlh50vf9r02sjc%40group.calendar.google.com/events: (403) Forbidden' in C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php:111
Stack trace:
#0 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(63): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client))
#1 [internal function]: Google_Http_REST::doExecute(Object(Google_Client), Object(Google_Http_Request))
#2 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Task\Runner.php(172): call_user_func_array(Array, Array)
#3 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(47): Google_Task_Runner->run()
#4 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Client.php(564): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#5 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Resource.php(227): Google_ in C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php on line 111
PHP-Error-Error: Uncaught exception 'Google_Service_Exception' with message 'Error calling POST https://www.googleapis.com/calendar/v3/calendars/k5l7mgaacmsltlh50vf9r02sjc%40group.calendar.google.com/events: (403) Forbidden' in C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php:111
Stack trace:
#0 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(63): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client))
#1 [internal function]: Google_Http_REST::doExecute(Object(Google_Client), Object(Google_Http_Request))
#2 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Task\Runner.php(172): call_user_func_array(Array, Array)
#3 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(47): Google_Task_Runner->run()
#4 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Client.php(564): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#5 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Resource.php(227): Google_
   Error in Script C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php on Line 111Abort Processing during Fatal-Error: Uncaught exception 'Google_Service_Exception' with message 'Error calling POST https://www.googleapis.com/calendar/v3/calendars/k5l7mgaacmsltlh50vf9r02sjc%40group.calendar.google.com/events: (403) Forbidden' in C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php:111
Stack trace:
#0 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(63): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client))
#1 [internal function]: Google_Http_REST::doExecute(Object(Google_Client), Object(Google_Http_Request))
#2 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Task\Runner.php(172): call_user_func_array(Array, Array)
#3 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(47): Google_Task_Runner->run()
#4 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Client.php(564): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#5 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Resource.php(227): Google_
   Error in Script C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php on Line 111

Hab’s!
Die eigene Developer Email in den Kalender eintragen!

Nachdem es mir gelungen ist, Termine sowohl zu lesen als auch zu schreiben, bin ich fast restlos glücklich.
Leider bin ich auf ein Problem gestoßen.
Ich versuche gerade Einträge in zwei unterschiedlichen Google Kalendern abzugleichen.
Dazu lese ich einen Termin aus Kalender 1 und einen aus Kalender 2 und vergleich diese.
Sollte der Termin von Kalender 1 in Kalender 2 nicht vorhanden oder unterschiedlich sein, so möchte ich diesen in Kalender 2 ändern.
Das klappt auch tatsächlich fast, jedoch wird ein gegebenenfalls vorhandener Termin in Kalender 2 nicht geändert, sondern jedesmal ein zusätzlicher neu angelegt.

Wie schaffe ich es nun, den Termin in Kalender 2 zu ändern und keinen neuen zu kreieren?

LG,
Andreas

ich bekomme folgende Fehlermeldung

Fatal error: Class ‚Google_Auth_AssertionCredentials‘ not found in /usr/share/symcon/scripts/31089.ips.php on line 35
Abort Processing during Fatal-Error: Class ‚Google_Auth_AssertionCredentials‘ not found
Error in Script /usr/share/symcon/scripts/31089.ips.php on Line 35

line35 im script
$cred = new Google_Auth_AssertionCredentials($service_account_name, array(‚https://www.googleapis.com/auth/calendar.readonly‘), $key);

vielleicht hat jemand eine Idee

ich habe eine ältere google-api-php-client zip datei geladen und siehe da es funktioniert.

Fatal error: Maximum execution time of 30 seconds exceeded in C:\Homeserver\IP-Symcon\scripts\google-api-php-client\src\Google\IO\Curl.php on line 102

Hi,

ich komme hier nicht mehr weiter !

Bekomme immer den selben Fehler - weis jemand was darüber

Grüße Ralf

Hi Ralf!

Könnte vlt. an der aktuellen Groß-Störung der Telekom liegen?! Warte lieber mal bis morgen ab, bevor du da Stunden über Stunden an Zeit investierst und es war bei dir gar nichts „kaputt“ :wink:
Internet und Telefonie: Deutschlandweit massive Störungen bei der Telekom - FOCUS Online

Grüße,
Chris

Hi Chris,

ja Danke habe es gerade auch im Radio gehört.

Grüße Ralf

Die Telekom funzt wieder nur mein Skript noch nicht

Keiner eine Idee ???

wer kann mir da mal helfen

Grüße Ralf

Fatal error: Maximum execution time of 30 seconds exceeded in C:\Homeserver\IP-Symcon\scripts\google-api-php-client\src\Google\IO\Curl.php on line 102

Super Anleitung, probiert und fast auf Anhieb geklappt :slight_smile:

Vielleicht wäre im Eingangspost der Hinweis ganz gut, dass man eine etwas ältere Google PHP API nehmen sollte.
Die aktuelle ist leider nicht kompatibel.

Desweiteren, ist mir grad ein Logikfehler im Skript mit Monatskalendern aufgefallen, weil heute tatsächlich ein Termin angezeigt werden sollte.

Man kann im ursprünglichen Skript entweder den Aktuellen Tag, oder einen Terminanzeigen lassen (OK, mehrere sind dann eh schwer anzuzeigen).

Ich habe mir erlaubt das Skript ein wenig abzuändern. Für den aktuellen Tag färbe ich nun die Schrift und nicht den Hintergrund ein.

Der HTML-Monatskalender für zwei Monate mit Keywords

<? 
/*============================================= 
skrGoogleMonatskalender - Martin Heinzel - 29.11.2011 
Version: 2.0 

Beschreibung: 
Mit diesem Skript wird ein Monatskalender erstellt. 
Dieser Kalender enthält alle Termine aus dem Google Kalender 
in Form eines Farbumschlag. Der aktuelle Tag wird an hand 
eines gesonderten Farbumschlages dargestellt. 

Änderungen 
---------- 

27.11.2014 von Version 1.0 -> 2.0 

Beschreibung: 

Script wurde angepasst auf die Google Kalender API V3 

tt.mm.yyyy von Version x.x -> x.x 

Berschreibung: 

================================================*/ 

// Variablen Deklaration -------------------------------------- 

// Variablen 
//-------------- 
$Calender_ID                   = 'Kalender-ID@googlemail.com'; 
$Client_ID                    = "1234.apps.googleusercontent.com"; 
$EMail                           = "1234@developer.gserviceaccount.com"; 
$key_file_location           = IPS_GetKernelDir()."scripts\\certificates\\Kalender-af58c75d630b.p12"; 

$arrEvent_Time_akt         = array(); 
$arrEvent_Titel_akt        = array(); 
$arrEvent_Time_naechste    = array(); 
$arrEvent_Titel_naechste   = array(); 
$arrStyle_akt              = array(); 
$arrStyle_naechste         = array(); 
$Keywords                  = array("graue","braun","blau", "geburtstag"); 
$Style                     = array('bgcolor="#808080"','bgcolor="#D2691E"','bgcolor="#87CEFA"', 'bgcolor="#DC143C"'); 

//------------------------------------------------------------- 

//benötigte Funktionen/Klassen 
set_include_path(IPS_GetKernelDir()."scripts\\google-api-php-client\\src"); 
require_once 'google-api-php-client/autoload.php'; 

//--------------------------- Main ---------------------------- 

// Die Verbindung zum Kalender aufbauen 
$client = new Google_Client(); 
$client->setApplicationName("Kalender"); 
$service = new Google_Service_Calendar($client); 
$key = file_get_contents($key_file_location); 
$cred = new Google_Auth_AssertionCredentials($EMail, array('https://www.googleapis.com/auth/calendar'), $key); 
$client->setAssertionCredentials($cred); 

// Event lesen 
//============== 
//2014-11-27T20:09:15+01:00 

// Event ab dem aktuellem Datum 
$start_date = date("Y-m")."-01T00:00:00+01:00"; 
$end_date = date("Y-m")."-".date('t')."T23:59:59+01:00"; 

// Übergeben der Daten der Suchanfrage 
$optParams = array('singleEvents'     => True, 
                         'timeMin'             => $start_date, 
                         'timeMax'             => $end_date, 
                        'orderBy'             => 'startTime', 
                        'maxResults'        => 30); 

// Die Suchanfrage ausführen 
$events = $service->events->listEvents($Calender_ID, $optParams); 

// Das Ergebnis durchsuchen 
foreach ($events->getItems() as $event) 
{ 
    // title 
    $arrEvent_Titel_akt[]    =    utf8_decode($event->getSummary()); 
     $title_harm =  strtolower(utf8_decode($event->getSummary())); 
     $Loop_count = 0; 

    // Style 
    foreach ($Keywords as $Keyword) 
    { 
        if(stristr($title_harm, $Keyword) !== false) 
        { 
         $arrStyle_akt[]   =  $Style[$Loop_count]; 
         break; 
        } 

      $Loop_count += 1; 

        if($Loop_count >= count($Keywords)) 
        { 
         $arrStyle_akt[]   =  'bgcolor="#800080"'; 
        } 
    } 

    // Auslesen der Startzeit 
    If($event->getStart()->dateTime <> "") 
    { 
       $Date_Time = $event->getStart()->dateTime; 
    } 
    else 
    { 
        $Date_Time = $event->getStart()->date; 
    } 

    // Zerlegen der Startzeit 
    if(strpos($Date_Time, "T")>0) 
    { 
        $arrDate_Time             =     explode("T", $Date_Time); 
        $arrEvent_Time_akt[]         =  $arrDate_Time[0]; 
    } 
    else 
    { 
       $arrEvent_Time_akt[]         =  $Date_Time; 
    } 

} 

$month   =  date('n'); 
$year    =  date('Y'); 
$browser = calender_month($month, $year, $arrEvent_Time_akt, $arrStyle_akt); 
//echo $browser; 
SetValue(CreateVariableByName($IPS_SELF, "Monatskalender", 3, "~HTMLBox"), $browser); 

// Event lesen 
//============== 

// Event ab dem aktuellem Datum 
$start_date = date("Y-m", mktime(0, 0, 0, date("m")+1, 1, date("Y")))."-01T00:00:00+01:00"; 
$end_date = date("Y-m", mktime(0, 0, 0, date("m")+1, 1, date("Y")))."-".date('t')."T23:59:59+01:00"; 

// Übergeben der Daten der Suchanfrage 
$optParams = array('singleEvents'     => True, 
                         'timeMin'             => $start_date, 
                         'timeMax'             => $end_date, 
                        'orderBy'             => 'startTime', 
                        'maxResults'        => 30); 

// Die Suchanfrage ausführen 
$events = $service->events->listEvents($Calender_ID, $optParams); 

// Das Ergebnis durchsuchen 
foreach ($events->getItems() as $event) 
{ 
    // title 
    $arrEvent_Titel_naechste[]    =    utf8_decode($event->getSummary()); 
     $title_harm =  strtolower(utf8_decode($event->getSummary())); 
     $Loop_count = 0; 

    // Style 
    foreach ($Keywords as $Keyword) 
    { 
        if(stristr($title_harm, $Keyword) !== false) 
        { 
         $arrStyle_naechste[]   =  $Style[$Loop_count]; 
         break; 
        } 

      $Loop_count += 1; 

        if($Loop_count >= count($Keywords)) 
        { 
         $arrStyle_naechste[]   =  'bgcolor="#800080"'; 
        } 
    } 

    // Auslesen der Startzeit 
    If($event->getStart()->dateTime <> "") 
    { 
       $Date_Time = $event->getStart()->dateTime; 
    } 
    else 
    { 
        $Date_Time = $event->getStart()->date; 
    } 

    // Zerlegen der Startzeit 
    if(strpos($Date_Time, "T")>0) 
    { 
        $arrDate_Time             =     explode("T", $Date_Time); 
        $arrEvent_Time_naechste[]         =  $arrDate_Time[0]; 
    } 
    else 
    { 
       $arrEvent_Time_naechste[]         =  $Date_Time; 
    } 

} 

$month   =  date('n', mktime(0, 0, 0, date("m")+1, 1, date("Y"))); 
$year    =  date('Y', mktime(0, 0, 0, date("m")+1, 1, date("Y"))); 
$browser = calender_month($month, $year, $arrEvent_Time_naechste, $arrStyle_naechste); 
//echo $browser; 
SetValue(CreateVariableByName($IPS_SELF, "Monatskal_naechster", 3, "~HTMLBox"), $browser); 

//------------------------- Main ENDE -------------------------- 

//------------------------ Funktionen ------------------------- 

function calender_month($month, $year, $arrEvent_Time, $arrStyle) 
{ 
/*============================================= 
calender_year - Martin Heinzel - 13.07.2010 
Version: 1.0 

Beschreibung: 
Mit diesem Skript wird ein Monatskalender erstellt. 
Dieser Kalender enthält alle Termine aus dem Google 
Kalender in  Form eines  Farbumschlag. Der aktuelle 
Tag wird  an hand eines  gesonderten Farbumschlages 
dargestellt. 

Änderungen 
---------- 

tt.mm.yyyy von Version x.x -> x.x 

Berschreibung: 

================================================*/ 

// Variablen Deklaration -------------------------------------- 

// Variablen 
//-------------- 
$arr_Month = array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'); 
$key          = $month -1; 
$act_day     = date('j'); 
$act_month     = date('n'); 

//------------------------------------------------------------- 

//--------------------------- Main ---------------------------- 

//Bitte anpassen 
//------------------------------------------ 
//Hintergrundfarbe Monat 
$Style_MonthHeader     = 'bgcolor="#C0C0C0"'; 

//Hintergrundfarbe der Kopfdaten -> Wochentage 
$Style_DayHeader      = 'bgcolor="#808080"'; 

//Hintergrundfarbe des aktuellen Tages 
$Style_Today           = 'bgcolor="#FF00FF"'; 

//Hintergrundfarbe gesamt 
$Style_background       = 'background-color:#F6F6F6'; 
//------------------------------------------ 


//zusammenstellen des Kopfes 
$DayHeader = '<th width="20" height="20" align="center" '.$Style_DayHeader.'><font color="#FFFFFF">Mo</font></th> 
              <th width="20" height="20" align="center" '.$Style_DayHeader.'><font color="#FFFFFF">Di</font></th> 
              <th width="20" height="20" align="center" '.$Style_DayHeader.'><font color="#FFFFFF">Mi</font></th> 
              <th width="20" height="20" align="center" '.$Style_DayHeader.'><font color="#FFFFFF">Do</font></th> 
              <th width="20" height="20" align="center" '.$Style_DayHeader.'><font color="#FFFFFF">Fr</font></th> 
              <th width="20" height="20" align="center" '.$Style_DayHeader.'><font color="#FFFFFF">Sa</font></th> 
              <th width="20" height="20" align="center" '.$Style_DayHeader.'><font color="#FFFFFF">So</font></th>'; 

//Aussehen der Zellen 
$Style_DayCell     = 'width="20" height="20" align="center"'; 

//erstellen der Monatsansicht mit dem Monat und den Tageskopfdaten 
$Monatskalender ='<table border="1" summary="Kalender '.$arr_Month[$key].'"> 
<tr> 
      <th colspan="7" '.$Style_MonthHeader.'>'.$arr_Month[$key].'</th> 
</tr> 
<tr>'.$DayHeader.'</tr>'; 

//wie viele Tage hat dieser Monat 
$total_days = date('t', mktime(0, 0, 0, $month, 1, $year)); 
//an welchem Tag beginnt der Monat -> Da die Woche mit Montag beginnt muss 1 subtrahiert werden 
$day_offset = (date('w', mktime(0, 0, 0, $month, 1, $year)))-1; 
//Das Ergebnis kann negativ sein. In diesem Fall ist der Tag "Sonntag" 
if($day_offset < 0) 
{ 
    $day_offset = 6; 
} 

//initialisieren des Tageszählers 
$Day_Count = 1; 

//ein Kalenderblatt (ein Monat) bekommt 6 Wochenreihen
for($week = 0; $week < 6; $week++)
{
    $Monatskalender .='<tr>';

    //eine Woche hat immer noch 7 Tage
    for($day = 0; $day < 7; $day++)
    {
        //Die Tage vor dem ersten müssen mit leeren Zellen aufgefüllt werden
        if($day_offset > 0)
        {
            $Monatskalender .='<td '.$Style_DayCell.'>*</td>';
             $day_offset -= 1;
        }
        else
        {
            //ausfüllen der Tage mit Tageszahlen
            if($Day_Count <= $total_days)
            {
                //Die Schrift des aktuellen Tages wird gefärbt
                if($month == $act_month and $Day_Count == $act_day)
                {
                    $font_color = '<font color="#FF00FF">';
                }
                else
                
                {
                    $font_color = '<font color="#000000">';
                }
                
                
                //Tage mit einem Termin werden eingefärbt
                $StartDay      =  $Day_Count;
                if(strlen($StartDay)< 2)        $StartDay      =  "0".$StartDay;

                $StartMonth    =  $month;
                if(strlen($StartMonth)< 2)        $StartMonth    =  "0".$StartMonth;

                $Appointment           =  False;
                $Appointment_Time    =  $year."-".$StartMonth."-".$StartDay;

                $Event_Time_LC       =  0;
                foreach ($arrEvent_Time as $Event_Time)
                       {
                           If($Event_Time == $Appointment_Time)
                                  {
                                    $Appointment               =  True;
                                    $Style_Appointment      =  $arrStyle[$Event_Time_LC];
                                  }
                           $Event_Time_LC  += 1;
                       }

                if($Appointment)
                  {
                    $Monatskalender .='<td '.$Style_DayCell.' '.$Style_Appointment.'>'.$font_color.''.($Day_Count).'</td>';
                  }
                else
                {
                  //alle anderen Tagen sind ohne färbung
                  $Monatskalender .='<td '.$Style_DayCell.'>'.($Day_Count).'</td>';
                }
                $Day_Count += 1;
            }
            else
            {
                //alle Tage die über die maximalen Monatstage gehen werden mit leeren Zellen aufgefüllt
                $Monatskalender .='<td '.$Style_DayCell.'>*</td>';
            }

        }
    }
    //Ende der Wochenreihe
    $Monatskalender .='</tr>';
}
//Ende des Monats 
$Monatskalender .='</table>'; 

//nur noch was schickes drum herum 
$browser=' 
<html> 
<head> 
<style type="text/css" media="screen"> 
body  { '.$Style_background.'; 
         font-family: Arial; 
      } 
</style> 
</head> 
<body scroll="no">' 
.$Monatskalender. 
'</body> 
</html>'; 

//und ablegen 
return $browser; 
} 

function CreateVariableByName($id, $name, $type, $profile = "") 
{ 
    global $IPS_SELF; 
    $vid = @IPS_GetVariableIDByName($name, $id); 
    if($vid === false) 
    { 
        $vid = IPS_CreateVariable($type); 
        IPS_SetParent($vid, $id); 
        IPS_SetName($vid, $name); 
        IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF"); 
        if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); } 
    } 
    return $vid; 
} 

//--------------------- Funktionen ENDE ------------------------ 

?>

:slight_smile: Ich hoffe ich habe jetzt beim Zusammenbauen keine Fehler mehr mit reingebracht …

Grüße

Pulpataro

Das wusste ich nicht. Muss ich mir ansehen.

Besten Dank für die Info!!

Hallo zusammen,

nach jahrelanger Zeit stillem Mitlesens muss ich mich doch bei Euch im Forum anmelden, da ich einfach nicht mehr weiter komme und auf eure Hilfe hoffe.
Zu meiner Person bin ich Nicht-Elektroniker, kann eventuell ganz leichte php-Programmierungen. Meist erreiche ich meine Ziele durch Nutzung der Scripte anderer Forumsteilnehmer und vieles probieren.

Trotzalledem kann ich mittlerweile meine Heizung über IPS steuern, habe 2 Cams am laufen, Licht, Temperatur und Öffnungszustände über 1-wire steuern/abfragen.

Nun zu meinem Problem: Hatte schon vor langer Zeit den Google Kalender am laufen, nach Umstellung auf API V3 bekomme ich das Script von „Schablone“ nicht mehr zum laufen.
Habe mittlerweile alle 14 Seiten zu diesem Thema umgesetzt, folgender Fehler kommt:

Fatal error: Uncaught exception ‚Google_Auth_Exception‘ with message ‚Error refreshing the OAuth2 token, message: ‚{
„error“ : „invalid_grant“
}‘‘ in C:\Users\JUSS\IP-Symcon\scripts\google-api-php-client\src\Google\Auth\OAuth2.php:358
Stack trace:
#0 C:\Users\JUSS\IP-Symcon\scripts\google-api-php-client\src\Google\Auth\OAuth2.php(309): Google_Auth_OAuth2->refreshTokenRequest(Array)
#1 C:\Users\JUSS\IP-Symcon\scripts\google-api-php-client\src\Google\Auth\OAuth2.php(234): Google_Auth_OAuth2->refreshTokenWithAssertion()
#2 C:\Users\JUSS\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Resource.php(208): Google_Auth_OAuth2->sign(Object(Google_Http_Request))
#3 C:\Users\JUSS\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Calendar.php(1561): Google_Service_Resource->call(‚list‘, Array, ‚Google_Service_…‘)
#4 C:\Users\JUSS\IP-Symcon\scripts\18622.ips.php(85): Google_Service_Calendar_Events_Resource->listEvents(‚mein Mail@go…‘, Array)
#5 {main}
thrown in C:\Users\JUSS\IP-Symcon\scripts\google-api-php-client\src\Google\Auth\OAuth2.php on line 358

==> Aktualisieren des OAuth2 token, aber wie???
Hoffe, ihr könnt mir helfen.

Vielen Dank im Voraus.
Gruß juhu

Ich weiß es jetzt nicht genau - aber ich erinnere mich, dass ich auch mal ein Problem hatte in der Richtung.
Soweit ich mich erinnere hatte ich Anfangs Dateien aus dem genannten „alten“ OAuth nicht eingefügt.
(Siehe Anleitung in Post #1)
Dann hatte ich später nochmals Probleme und zwar weil das Updaten von IPS diese wieder überschrieben hat.

Das ist jedenfalls das was noch ganz weit entfernt in meiner Erinnerung rumgeistert - vielleicht hilft es dir ja!

Wie ist das eigentlich mittlerweile beim Update von IPS - ich deaktiviere im Moment immer noch die SSL-Zertifikate usw. aus der Auswahl wenn ich n Update laufen lasse, kann ich die nochmal gefahrlos auf Stand bringen oder ist OAuth dann wieder hinüber?

Viel Glück mit dem Kalender!
Gruß,
Matthias

Mit dem Umzug auf die SymBox werde ich das Thema nochmals anfassen.
Ich bitte um etwas geduld!

So meine Eumel. :smiley:

Die Scripte haben noch Ihre Gültigkeit.

Zwei Dinge sind zu beachten (das habe ich im ersten Post zugefügt!)

  1. Beim laden der Google API steht das:

Da halten wir uns dran!!!

  1. Mit dem Umzug auf IPS V4.0 brauchen nicht mehr diese blöden ssl Dateien umkopiert werden.
    Zudem ist in der PHP-Ini die Extension Open ssl bereits aktiviert.