Hallo alle zusammen,
hier nochmal ein Beispiel-Script von mir.
<?
/** GoogleCalendarRead
* Martin Heinzel - 03.02.2016
* Version: 1.0
*
* Beschreibung:
* Mit diesem Script werden die nächsten drei Termine aus dem Google Kalender
* gelesen.
*
* Änderungen
* ----------
*
* tt.mm.jjjj von Version x.x -> y.y
*
* Beschreibung:
*
*/
/**
* Variablen Deklaration --------------------------------------
*/
/**
* Variablen
*/
$terminHeute = "";
$terminMorgen = "";
//* User-Daten
$Client_ID = "blabla.apps.googleusercontent.com";
$EMail = "blupblup@developer.gserviceaccount.com";
$key_file_location = IPS_GetKernelDir()."scripts/certificates/Kalender-af58d75d650b.p12";
$Calender_ID = 'derknaller@googlemail.com';
/**
* Variablen Deklaration ENDE ---------------------------------
*/
//* benötigte Funktionen/Klassen
set_include_path(IPS_GetKernelDir()."scripts\\google-api-php-client\\src");
require_once 'google-api-php-client/src/Google/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
*/
//* Event ab dem aktuellem Datum
$start_date = date("Y-m-d")."T00:00:00+01:00";
//* Übergeben der Daten der Suchanfrage
$optParams = array('singleEvents' => True,
'timeMin' => $start_date,
'orderBy' => 'startTime',
'maxResults' => 3);
//* Die Suchanfrage ausführen
$events = $service->events->listEvents($Calender_ID, $optParams);
//* Initialisieren der Variablen
$event_display = "";
//* Das Ergebnis durchsuchen
foreach ($events->getItems() as $event)
{
//* 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);
$Date = $arrDate_Time[0];
$arrTime = explode("+", $arrDate_Time[1]);
$Time = substr($arrTime[0], 0, 8);
}
else
{
$Date = $Date_Time;
$Time = " ";
}
$arrDate = explode("-", $Date);
$title = utf8_decode($event->getSummary());
$event_display .= $arrDate[2].".".$arrDate[1].".".$arrDate[0]." ".$Time." ".$title."\r";
$DatumTermin = $Date;
$DatumHeute = date("Y-m-d");
$morgen = mktime(0, 0, 0, date("m"), date("d")+1, date("Y"));
$DatumMorgen = date("Y-m-d", $morgen);
//* Anzeigen
if(($DatumTermin == $DatumHeute) or
($DatumTermin == $DatumMorgen))
{
//ablegen Termin Heute
if($DatumTermin == $DatumHeute)
{
$terminHeute = $title;
}
//ablegen Termin Morgen
if($DatumTermin == $DatumMorgen)
{
$terminMorgen = $title;
}
//* Harmonisieren
$title_harm = strtolower($title);
if(!(strpos($title_harm, "graue tonne") === false))
{
SetValue(CreateVariableByName($_IPS['SELF'], "graueTonne", 0), true);
}
if(!(strpos($title_harm, "braune tonne") === false))
{
SetValue(CreateVariableByName($_IPS['SELF'], "brauneTonne", 0), true);
}
if(!(strpos($title_harm, "blaue tonne") === false))
{
SetValue(CreateVariableByName($_IPS['SELF'], "blaueTonne", 0), true);
}
if(!(strpos($title_harm, "gelber sack") === false))
{
SetValue(CreateVariableByName($_IPS['SELF'], "gelberSack", 0), true);
}
}
}
SetValue(CreateVariableByName($_IPS['SELF'], "Kalender", 3), $event_display);
/**
* Main ENDE ---------------------------------------------------
*/
/**
* Funktionen --------------------------------------------------
*/
function CreateVariableByName($id, $ident, $type) {
global $_IPS;
$vid = @IPS_GetObjectIDByIdent($ident, $id);
if($vid === false) {
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $ident);
IPS_SetIdent($vid, $ident);
IPS_SetInfo($vid, "This variable was created by script #".$_IPS['SELF']);
}
return $vid;
}
/**
* Funktionen ENDE ----------------------------------------------
*/
?>