InfoFrame: Digitaler Bilderrahmen (Anzeige von Anrufen, E-Mails, Termine, Wetter...)

He Spoo3ner
Ich hatte gerade eine TV Sitzung mit marvin424.Noch mal vielen Dank für seine Hilfe.
Wir sind soweit gekommen,das mein Apadche sofort beim Aufrufen der autoload.php im Goggle Patch abschmiert.Es stehen auch eine Fehler in der Error.log.
Jetzt habe ich Dein Code aufgerufen und ich sehe dieses BildBild.JPG

Marvin hat noch eine Calendereintrag in die Datenbank manuell eingetragen ,der wurde auch angezeigt.

Volker
 
Zuletzt bearbeitet:
was ist wenn du
PHP:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
gleich am anfang von marvins script einfügst und dann aurufst? (falls noch nicht geschehen)
 
Hi Spoon3er,
vielleicht weisst Du Rat.
Die Scripts sind alle in Ordnung, im Google Developer Center ist alles korrekt eingetragen. Allerdings stüzt seltsamerweise bei Knusterus der apache ab, sobald die autoload.php ausgeführt wird. Im apache Error Log ist - bis auf die Bemerkung, dass er unsanft beendet wurde - nichts eingetragen.


Hallo Volker,
bei Dir natürlich jetzt mit dem neuen Pfad der autoload.php

PHP:
<?php

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
echo "<h1 align='center'>TEST</h1>";
echo "<h3>includePath: ".get_include_path()."</h3>".PHP_EOL;
echo "<h4>DOCUMENT_ROOT: ".$_SERVER['DOCUMENT_ROOT']."</h4>".PHP_EOL;
    
require_once 'c:/xampp/php/google-api-php-client-master/autoload.php';

$key = file_get_contents("c:/xampp/htdocs/infoframe/Infoframe-3999c7729ff4.p12", TRUE);

echo "<h4>Hier kommt jetzt unleserliches Zeug: </h4><br>".$key;

?>
 
He zusammen

Den Pfad hatte ich schon geändert,das Bild bleibt wie oben.
Volker
 
ok, dann ist der apache doch jetzt nicht bei
require_once 'c:/xampp/php/google-api-php-client-master/autoload.php';
abgeschmiert...
 
Tschuldigung, wer lesen kann ist klar im Vorteil
Also beim Script von Marvin kommt folgender Fehler
Code:
Fatal error: Using $this when not in object context in C:\xampp\htdocs\test1.php on line 13
Volker
 
wir drehen uns im kreis.... das stand schon vor einer seite da, volker ;)
 
das andere, das war das mit dem Fehler.
 
ja aber Du wolltest es doch wissen,und nu???:confused::doof:
Ich fürchte ich muss ohne Kalender leben oder??

Also das Script von Spoo3ner brachte das gewünschte Bild und das Script von Marvin den Fehler.
 
Zuletzt bearbeitet:
Volker,

mein erstes Script hatte einen Fehler, das hast Du jetzt mit Spoon3ers Zusatz ausgeführt.

Nimm das:
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);  

require_once 'c:/xampp/php/google-api-php-client-master/autoload.php';

session_start();
$client_id = "381048971205-c2a97vdgml3oi9q8ev5vdutsvn4f538p.apps.googleusercontent.com";
$service_account_name = "381048971205-c2a97vdgml3oi9q8ev5vdutsvn4f538p@developer.gserviceaccount.com";

try {
    $client = new Google_Client();
    $client->setApplicationName('InfoFrame');
    $service = new Google_Service_Calendar($client);
}

catch (Exception $e) {
    die ('Folgender Fehler trat auf: ' . $e->getMessage());
}

if (isset($_SESSION['service_token']))
    $client->setAccessToken($_SESSION['service_token']);

$key = file_get_contents("c:/xampp/htdocs/infoframe/Infoframe-3999c7729ff4.p12");
$cred = new Google_Auth_AssertionCredentials($service_account_name, array('https://www.googleapis.com/auth/calendar'), $key);

$client->setAssertionCredentials($cred);
if ($client->getAuth()->isAccessTokenExpired())
    $client->getAuth()->refreshTokenWithAssertion($cred);

$_SESSION['service_token'] = $client->getAccessToken();

$now = new DateTime('NOW');
$clone = clone $now;
$clone = date_modify($clone, '+1 month');
$startDate = date_format($now, DateTime::W3C);
$endDate = date_format($clone, DateTime::W3C);
$eventParams = array('timeMin' => $startDate,
        'timeMax' => $endDate,
        'singleEvents' => 'true');
                                
//get Calendar Id´s    
$calendarList = $service->calendarList->listCalendarList();

echo '<table border="1">';
    
foreach ($calendarList->getItems() as $calendarListEntry) {
      $calendarID = $calendarListEntry->getID();
      $color = $calendarListEntry->getBackgroundColor();
             
        $events = $service->events->listEvents($calendarID, $eventParams);        
        foreach ($events->getItems() as $event) {
        if (!empty($event['modelData']['start']['dateTime'])) {
            $begin = date_format(date_create($event['modelData']['start']['dateTime']), 'Y-m-d H:i:s');
            $end = date_format(date_create($event['modelData']['end']['dateTime']), 'Y-m-d H:i:s');
        }else{
            $begin = $event['modelData']['start']['date'];
            $end = $event['modelData']['end']['date'];
        }                  
        $title = $event->getSummary();    
        echo '<tr><td>' . $color . '</td><td>' . $begin . '</td><td>' . $end. '</td><td>' .$title . '</td></tr>';    
    }
}
echo '</table>';
 
Zuletzt bearbeitet:
Hmmm, das war doch erst gestern, als er gleich auf deine Fehlermeldung das neue script gepostet hat.....
Bissi mitdenken wär halt schon gut :)

http://www.ip-phone-forum.de/showthread.php?t=206194&page=117&p=2053940&viewfull=1#post2053940
http://www.ip-phone-forum.de/showthread.php?t=206194&page=117&p=2053983&viewfull=1#post2053983
PHP:
 <?php

//Ich nehme das zweite script von marvin, da im ersten dieser Fehler mit dem $this-> vorhanden war!!!!

//das habe ich jetzt hier eingetragen
error_reporting(E_ALL);
ini_set('display_errors', TRUE);


// DIE PFADE MUSST DU NATÜRLICH JETZT WIEDER ANPASSEN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


// ********
// bitte check nochmal hier, ob der Pfad stimmt
require_once 'c:/xampp/htdocs/zendfw/google-api-php-client/autoload.php';

session_start();

// ********
// bitte check nochmal hier, ob die ID stimmt
$client_id = "381048971205-c2a97vdgml3oi9q8ev5vdutsvn4f538p.apps.googleusercontent.com";

// ********
// bitte check nochmal hier, ob die ID stimmt
$service_account_name = "381048971205-c2a97vdgml3oi9q8ev5vdutsvn4f538p@developer.gserviceaccount.com";

try {
    $client = new Google_Client();

    // ********
    // bitte check nochmal hier, ob der Name stimmt
    $client->setApplicationName('InfoFrame');

    $service = new Google_Service_Calendar($client);
}

catch (Exception $e) {
    die ('Folgender Fehler trat auf: ' . $e->getMessage());
}

if (isset($_SESSION['service_token']))
    $client->setAccessToken($_SESSION['service_token']);

// ********
// bitte check nochmal hier, ob der Pfad stimmt
$key = file_get_contents("c:/xampp/htdocs/infoframe/Infoframe-3999c7729ff4.p12");
$cred = new Google_Auth_AssertionCredentials($service_account_name, array('https://www.googleapis.com/auth/calendar'), $key);

$client->setAssertionCredentials($cred);
if ($client->getAuth()->isAccessTokenExpired())
    $client->getAuth()->refreshTokenWithAssertion($cred);

$_SESSION['service_token'] = $client->getAccessToken();

$now = new DateTime('NOW');
$clone = clone $now;
$clone = date_modify($clone, '+1 month');
$startDate = date_format($now, DateTime::W3C);
$endDate = date_format($clone, DateTime::W3C);
$eventParams = array('timeMin' => $startDate,
        'timeMax' => $endDate,
        'singleEvents' => 'true');
                                
//get Calendar Id´s    
$calendarList = $service->calendarList->listCalendarList();

echo '<table border="1">';
    
foreach ($calendarList->getItems() as $calendarListEntry) {
      $calendarID = $calendarListEntry->getID();
      $color = $calendarListEntry->getBackgroundColor();
             
        $events = $service->events->listEvents($calendarID, $eventParams);        
        foreach ($events->getItems() as $event) {
        if (!empty($event['modelData']['start']['dateTime'])) {
            $begin = date_format(date_create($event['modelData']['start']['dateTime']), 'Y-m-d H:i:s');
            $end = date_format(date_create($event['modelData']['end']['dateTime']), 'Y-m-d H:i:s');
        }else{
            $begin = $event['modelData']['start']['date'];
            $end = $event['modelData']['end']['date'];
        }                  
        $title = $event->getSummary();    
        echo '<tr><td>' . $color . '</td><td>' . $begin . '</td><td>' . $end. '</td><td>' .$title . '</td></tr>';    
    }
}
echo '</table>';
 
Zuletzt bearbeitet:
Das Script brachte den Fehler
PHP:
   <?php

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
require_once 'c:/xampp/php/google-api-php-client-master/autoload.php';
session_start();
$client_id = "381048971205-c2a97vdgml3oi9q8ev5vdutsvn4f538p.apps.googleusercontent.com";
$service_account_name = "381048971205-c2a97vdgml3oi9q8ev5vdutsvn4f538p@developer.gserviceaccount.com";
$project_name = "Infoframe";

try {
    $client = new Google_Client();
    $client->setApplicationName($this->config['project_name']);
    $service = new Google_Service_Calendar($client);
}

catch (Exception $e) {
    die ('Folgender Fehler trat auf: ' . $e->getMessage());
}

if (isset($_SESSION['service_token']))
    $client->setAccessToken($_SESSION['service_token']);
$key = file_get_contents("c:/xampp/htdocs/infoframe/Infoframe-3999c7729ff4.p12");
$cred = new Google_Auth_AssertionCredentials($service_account_name, array('https://www.googleapis.com/auth/calendar'), $key);

$client->setAssertionCredentials($cred);
if ($client->getAuth()->isAccessTokenExpired())
    $client->getAuth()->refreshTokenWithAssertion($cred);

$_SESSION['service_token'] = $client->getAccessToken();

$now = new DateTime('NOW');
$clone = clone $now;
$clone = date_modify($clone, '+1 month');
$startDate = date_format($now, DateTime::W3C);
$endDate = date_format($clone, DateTime::W3C);
$eventParams = array('timeMin' => $startDate,
        'timeMax' => $endDate,
        'singleEvents' => 'true');
                                
//get Calendar Id´s    
$calendarList = $service->calendarList->listCalendarList();

echo '<table border="1">';
    
foreach ($calendarList->getItems() as $calendarListEntry) {
      $calendarID = $calendarListEntry->getID();
      $color = $calendarListEntry->getBackgroundColor();
             
        $events = $service->events->listEvents($calendarID, $eventParams);        
        foreach ($events->getItems() as $event) {
        if (!empty($event['modelData']['start']['dateTime'])) {
            $begin = date_format(date_create($event['modelData']['start']['dateTime']), 'Y-m-d H:i:s');
            $end = date_format(date_create($event['modelData']['end']['dateTime']), 'Y-m-d H:i:s');
        }else{
            $begin = $event['modelData']['start']['date'];
            $end = $event['modelData']['end']['date'];
        }                  
        $title = $event->getSummary();    
        echo '<tr><td>' . $color . '</td><td>' . $begin . '</td><td>' . $end. '</td><td>' .$title . '</td></tr>';    
    }
}
echo '</table>';

Ja Spoo3ner, du hast recht Enschuldigung,aber ich befasse mich nun schon den ganzen Nachmittag damit,da kann man schon mal durcheinander kommen.

Also mit dem letzten Script schmiert Apache wieder ab.

Das steht in der Error.log
Code:
[Sun Nov 30 17:10:08.207266 2014] [mpm_winnt:notice] [pid 3824:tid 216] AH00428: Parent: child process exited with status 3221225477 -- Restarting.
[Sun Nov 30 17:10:09.517668 2014] [mpm_winnt:notice] [pid 3824:tid 216] AH00455: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 configured -- resuming normal operations
[Sun Nov 30 17:10:09.517668 2014] [mpm_winnt:notice] [pid 3824:tid 216] AH00456: Server built: Aug 18 2012 12:41:37
[Sun Nov 30 17:10:09.517668 2014] [core:notice] [pid 3824:tid 216] AH00094: Command line: 'c:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Sun Nov 30 17:10:09.970069 2014] [mpm_winnt:notice] [pid 3824:tid 216] AH00418: Parent: Created child process 5372
[Sun Nov 30 17:10:11.623672 2014] [mpm_winnt:notice] [pid 5372:tid 228] AH00354: Child: Starting 150 worker threads.
[Sun Nov 30 17:10:13.776476 2014] [mpm_winnt:notice] [pid 3824:tid 216] AH00428: Parent: child process exited with status 3221225477 -- Restarting.
[Sun Nov 30 17:10:14.260077 2014] [mpm_winnt:notice] [pid 3824:tid 216] AH00455: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 configured -- resuming normal operations
[Sun Nov 30 17:10:14.260077 2014] [mpm_winnt:notice] [pid 3824:tid 216] AH00456: Server built: Aug 18 2012 12:41:37
[Sun Nov 30 17:10:14.260077 2014] [core:notice] [pid 3824:tid 216] AH00094: Command line: 'c:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Sun Nov 30 17:10:14.275677 2014] [mpm_winnt:notice] [pid 3824:tid 216] AH00418: Parent: Created child process 4344
[Sun Nov 30 17:10:16.350480 2014] [mpm_winnt:notice] [pid 4344:tid 228] AH00354: Child: Starting 150 worker threads.
 
Zuletzt bearbeitet:
was sagt die C:\xampp\php\logs\php_error_log
 
hast du echt das von dir oben gepostete script verwendet? ne, oder?
PHP:
//.................
$client->setApplicationName($this->config['project_name']);
//.............................
 
hmmm:
Parent: child process exited with status 3221225477 -- Restarting.
Das kann ALLES sein, von fehlerhaften code bis hin zu extensions die nicht geladen werden....

http://stackoverflow.com/questions/...exited-with-status-3221225477/7371753#7371753

FWIW: 3221225477 is C0000005 in hexadecimal, and that error code happens to mean "access violation". There can be many different reasons for those

Also es gibt gefühlte 100millionen Lösungsvorschläge... Da kann man sich nicht durcharbeiten.
Ich vermute daß in einer der Klassen aus dem "google-api-php-client" mit den Windows-Pfaden nicht zurecht kommt. Schließlich läuft ja php sonst. :(
 
Ja habe ich ich habe nur den Pfad für die autoload.php geändert,da Marvin sie verschoben hat in 'c:/xampp/php/google-api-php-client-master/autoload.php';
PHP:
 <?php

//Ich nehme das zweite script von marvin, da im ersten dieser Fehler mit dem $this-> vorhanden war!!!!

//das habe ich jetzt hier eingetragen
error_reporting(E_ALL);
ini_set('display_errors', TRUE);


// DIE PFADE MUSST DU NATÜRLICH JETZT WIEDER ANPASSEN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


// ********
// bitte check nochmal hier, ob der Pfad stimmt
require_once 'c:/xampp/php/google-api-php-client-master/autoload.php';

session_start();

// ********
// bitte check nochmal hier, ob die ID stimmt
$client_id = "381048971205-c2a97vdgml3oi9q8ev5vdutsvn4f538p.apps.googleusercontent.com";

// ********
// bitte check nochmal hier, ob die ID stimmt
$service_account_name = "381048971205-c2a97vdgml3oi9q8ev5vdutsvn4f538p@developer.gserviceaccount.com";

try {
    $client = new Google_Client();

    // ********
    // bitte check nochmal hier, ob der Name stimmt
    $client->setApplicationName('InfoFrame');

    $service = new Google_Service_Calendar($client);
}

catch (Exception $e) {
    die ('Folgender Fehler trat auf: ' . $e->getMessage());
}

if (isset($_SESSION['service_token']))
    $client->setAccessToken($_SESSION['service_token']);

// ********
// bitte check nochmal hier, ob der Pfad stimmt
$key = file_get_contents("c:/xampp/htdocs/infoframe/Infoframe-3999c7729ff4.p12");
$cred = new Google_Auth_AssertionCredentials($service_account_name, array('https://www.googleapis.com/auth/calendar'), $key);

$client->setAssertionCredentials($cred);
if ($client->getAuth()->isAccessTokenExpired())
    $client->getAuth()->refreshTokenWithAssertion($cred);

$_SESSION['service_token'] = $client->getAccessToken();

$now = new DateTime('NOW');
$clone = clone $now;
$clone = date_modify($clone, '+1 month');
$startDate = date_format($now, DateTime::W3C);
$endDate = date_format($clone, DateTime::W3C);
$eventParams = array('timeMin' => $startDate,
        'timeMax' => $endDate,
        'singleEvents' => 'true');
                                
//get Calendar Id´s    
$calendarList = $service->calendarList->listCalendarList();

echo '<table border="1">';
    
foreach ($calendarList->getItems() as $calendarListEntry) {
      $calendarID = $calendarListEntry->getID();
      $color = $calendarListEntry->getBackgroundColor();
             
        $events = $service->events->listEvents($calendarID, $eventParams);        
        foreach ($events->getItems() as $event) {
        if (!empty($event['modelData']['start']['dateTime'])) {
            $begin = date_format(date_create($event['modelData']['start']['dateTime']), 'Y-m-d H:i:s');
            $end = date_format(date_create($event['modelData']['end']['dateTime']), 'Y-m-d H:i:s');
        }else{
            $begin = $event['modelData']['start']['date'];
            $end = $event['modelData']['end']['date'];
        }                  
        $title = $event->getSummary();    
        echo '<tr><td>' . $color . '</td><td>' . $begin . '</td><td>' . $end. '</td><td>' .$title . '</td></tr>';    
    }
}
echo '</table>';

@Marvin,welche Windows Version hast Du ??


Volker
 
Zuletzt bearbeitet:
Bei mir läuft Windows 7, 64bit

schau mal nach deiner xampp version -> http://localhost/xampp/ Wir haben eben nur die Version des XAMPP Control Panales verlichen (3.2.1).
bei mir läuft xampp 1.8.3, d.h. php 5.5.15 und apache 2.4.7

Ich meine bei Dir php 5.4.* gesehen zu haben, vielleicht liegts daran?

Gruß, Michael...
 
Hi Michael
also bei mir Xampp 1.8.1 php 5.4.7 und Apache 2.4.3
Und ich habe Wind. 7 32bit.
dann werde ich mal eine neuere Xampp Version testen.Melde mich dann wieder.

Vielen Dank für Eure Hilfe

Volker
 
So Hallo zusammen
Ich habe jetzt die neuste Version von XAMPP mit Apache 2.4.10 und php 5.6.3 installiert.Und ihr werdet es nicht glauben es funktioniert!!!!!!!!!!!!:D:D:D
Ich habe nur den Pfad in der CalenderPlugin in
Code:
	require_once 'autoload.php';
geändert .

Jetzt werden schon mal die Feiertage angezeigt,allerdings fehlt noch die Müllabfuhr,muss ich da noch was aktivieren??
Also es fehlt mein kompletter Kalender, mit meinen Eintragungen,ich hab nur den Feiertagskalender.

Vielen Dank an Alle die geholfen haben vor allem Marvin!!!:bier:

Euch noch einen schönen Restsonntag

Volker
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.