Hallo Doc,
ich Probiere mit den Orginal Scripte von Stele99 und von Schablone
<?
$C["CLIENT-ID"] = "455432008151-q04rbdr3ckadb9fkpaji59vta5n40lq4.apps.googleusercontent.com";
$C["EMAIL"] = "45543200815-q04rbdr3ckadb9fkpaji59vta5n40lq4@developer.gserviceaccount.com";
$C["PRIVATEKEY"] = "C:\IPS-Eigene_Dateien\IPS-Kalender-0815.p12";
$C["CALENDAR"] = "Mail@googlemail.com";
$C["LINESEP"] = "<br>
";
require_once 'google-api-php-client/autoload.php';
$client = new Google_Client();
// Replace this with your application name.
$client->setApplicationName("IPS");
$service = new Google_Service_Calendar($client);
$key = file_get_contents($C["PRIVATEKEY"]);
$cred = new Google_Auth_AssertionCredentials(
$C["EMAIL"],
array('https://www.googleapis.com/auth/calendar.readonly'),
$key
);
$client->setAssertionCredentials($cred);
$cals = $service->calendarList->listCalendarList();
// Convert recurring events to single events
// Look for events in the next week - now to now+1week
$params = array(
'singleEvents' => TRUE,
'timeMin' => (new DateTime())->format(DateTime::RFC3339),
'timeMax' => (new DateTime())->add(new DateInterval('P1W'))->format(DateTime::RFC3339),
);
$events = $service->events->listEvents($C["CALENDAR"], $params);
$caltxt ="";
foreach ($events->getItems() as $event) {
$eventDate = $event->getStart()->dateTime;
$evDate = new DateTime($eventDate);
$date = $evDate->getTimestamp();
$caltxt .= (date("H:i", $date) != "00:00")?date("d.m.Y H:i", $date)." ":date("D d.m.Y", $date )." ";
$caltxt .= utf8_decode($event->getSummary());
$caltxt .= $C["LINESEP"];
}
// jetzt was zb. in eine variable schreiben etc.
if($_IPS['SENDER'] == "Execute")
{
echo "<pre>";
echo $caltxt;
}
?>
<?
/*=============================================================
skrGoogleKalenderLesen - Martin Heinzel - 01.05.2012
Version: 2.0
Beschreibung:
Mit diesem Script werden die nächsten "X" Termine aus den Google Kalendern
gelesen.
Änderungen
----------
07.06.2012 von Version 0.1 -> 1.0
Beschreibung:
Erste Version des Scriptes. Geändert wurde:
- Es werden nun Start und Endzeit angegeben.
- Bei ganztägigen Terminen steht anstelle der Zeit der Text „Ganztägig“
- Vor dem Termin steht in eckigen Klammern der Kalender, aus dem der Termin ist.
Die Anzahl der angezeigten Zeichen des Kalendernamens kann eingestellt werden.
27.11.2014 von Version 1.0 -> 2.0
Beschreibung:
Script wurde angepasst auf die Google Kalender API V3
================================================================*/
//#################################### Bitte einstellen #####################################################################
$Client_ID = "45543200815-q04rbdr3ckadb9fkpaji59vta5n40lq4.apps.googleusercontent.com";
$EMail = "45543200815-q04rbdr3ckadb9fkpaji59vta5n40lq4@developer.gserviceaccount.com";
$key_file_location = IPS_GetKernelDir()."scripts\\certificates\\IPS-Kalender-0815.p12";
$calendar_login = array('Mail1@googlemail.com',);
// 'Mail2@googlemail.com'
$message_count = 10; //Anzahl der Meldungen
$whoCounts = 3; //Anzahl der dargestellten Zeichen des Kalenders
//###########################################################################################################################
// Variablen Deklaration --------------------------------------
// Variablen
//--------------
$StartTimes = array();
$EndTimes = array();
$Titles = array();
//-------------------------------------------------------------
//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("IPS");
$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
//==============
// Die einzelnen Kalender abfragen
foreach ($calendar_login as $Calender_ID)
{
// Übergeben der Daten der Suchanfrage
$optParams = array('singleEvents' => True,
'timeMin' => (new DateTime())->format(DateTime::RFC3339),
'orderBy' => 'startTime',
'maxResults' => $message_count);
// Die Suchanfrage ausführen
$events = $service->events->listEvents($Calender_ID, $optParams);
// Das Ergebnis durchsuchen
foreach ($events->getItems() as $event)
{
// print_r($event);
// Auslesen der Startzeit
If($event->getStart()->dateTime <> "")
{
$Date_Time_Start = $event->getStart()->dateTime;
$Date_Time_End = $event->getEnd()->dateTime;
}
else
{
$Date_Time_Start = $event->getStart()->date;
$Date_Time_End = $event->getEnd()->date;
}
$StartTimes[] = EventTime_to_TimeStamp($Date_Time_Start);
$EndTimes[] = EventTime_to_TimeStamp($Date_Time_End);
$who = utf8_decode($event->getOrganizer()->displayName);
$who_substr = substr($who, 0, $whoCounts);
$Titles[] = "[".$who_substr."] ".utf8_decode($event->getSummary());
}
}
array_multisort($StartTimes,SORT_ASC,$Titles,$EndTimes); //Arrays sortieren
$count = count($StartTimes); //Anzahl der Termine
//Max Schleifenzählers
if($count <= $message_count){ $i = $count; }
else { $i = $message_count; }
$sz = 0; //Schleifenzähler
//Terminanzeige zusammenbauen
$event_display = ""; // Initialisieren der Anzeige
while($sz < $i)
{
//Abfrage ganztägiger Termin
if(Date("H:i:s",(int)$StartTimes[$sz]) === "00:00:00")
{
$event_display .= Date("d.m.Y",(int)$StartTimes[$sz])." --- Ganztägig --- ".$Titles[$sz]."
";
}
else
{
$event_display .= Date("d.m.Y H:i:s",(int)$StartTimes[$sz])." - ".Date("H:i:s",(int)$EndTimes[$sz])." ".$Titles[$sz]."
";
}
$sz++;
}
//echo $event_display;
SetValue(CreateVariableByName($IPS_SELF, "Kalender", 3, "~TextBox"), $event_display);
//------------------------- Main ENDE --------------------------
//------------------------ Funktionen -------------------------
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;
}
/**
* Returns a timestamp of the Google event Time
*
* @param string $eventTime The Google event Time in "2010-06-11T07:30:00.000-07:00"
* @return int Timestamp of the Google event Time
*/
function EventTime_to_TimeStamp($eventTime)
{
// Zerlegen der Startzeit
if(strpos($eventTime, "T")>0)
{
//Datum
$arrDate_Time = explode("T", $eventTime);
$Date = $arrDate_Time[0];
$arrDate = explode("-", $Date);
$term_jahr = (int)$arrDate[0];
$term_monat = (int)$arrDate[1];
$term_tag = (int)$arrDate[2];
//Uhrzeit
$arrTime = explode("+", $arrDate_Time[1]);
$Time = substr($arrTime[0], 0, 8);
$arrTimeVal = explode(":", $Time);
$term_Stunde = (int)$arrTimeVal[0];
$term_Minute = (int)$arrTimeVal[1];
$term_Sekunde = (int)$arrTimeVal[2];
}
else
{
//Datum
$arrDate = explode("-", $eventTime);
$term_jahr = (int)$arrDate[0];
$term_monat = (int)$arrDate[1];
$term_tag = (int)$arrDate[2];
//Uhrzeit
$term_Stunde = 0;
$term_Minute = 0;
$term_Sekunde = 0;
}
return mktime($term_Stunde, $term_Minute, $term_Sekunde, $term_monat, $term_tag, $term_jahr);
}
//--------------------- Funktionen ENDE ----------------------
?>
bei beiden Scripts habe ich die aktuell die exakt die gleiche Fehlermeldung
Fatal error: Uncaught exception ‚Google_Service_Exception‘ with message ‚Error calling GET https://www.googleapis.com/calendar/v3/calendars/Mail%40googlemail.com/events?singleEvents=true&timeMin=2014-11-28T20%3A48%3A40%2B01%3A00&timeMax=2014-12-05T20%3A48%3A40%2B01%3A00: (404) Not Found‘ in C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php:83
Stack trace:
#0 C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(41): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client))
#1 C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Client.php(563): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#2 C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Resource.php(227): Google_Client->execute(Object(Google_Http_Request))
#3 C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Calendar.php(1561): Google_Service_Resource->call(‚list‘, Array, ’ in C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php on line 83
Abort Processing during Fatal-Error: Uncaught exception ‚Google_Service_Exception‘ with message ‚Error calling GET https://www.googleapis.com/calendar/v3/calendars/S.krebs1512%40googlemail.com/events?singleEvents=true&timeMin=2014-11-28T20%3A48%3A40%2B01%3A00&timeMax=2014-12-05T20%3A48%3A40%2B01%3A00: (404) Not Found‘ in C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php:83
Stack trace:
#0 C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(41): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client))
#1 C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Client.php(563): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#2 C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Resource.php(227): Google_Client->execute(Object(Google_Http_Request))
#3 C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Calendar.php(1561): Google_Service_Resource->call(‚list‘, Array, ’
Error in Script C:\Program Files\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php on Line 83
An den Einstellungen von den zuvor geposteten Bildern hat sich nicht geändert.
Ich habe auch das API Projekt auch schon einmal gelöst und neu erstellt. Der Fehler bleibt der selbe.
Wenn ich noch irgendwelche Log oder Bilder von irgendwelchen Einstellung posten soll sagt mir bescheid.
Ich bin für jeden Tipp Dankbar.
Gruß Stephan
PS: Die ID’s sind alle verändert