2014-12-15 14 views
5

Ich versuche, eine ältere Anwendung, die ich zuvor nicht geschrieben habe, mithilfe der Google Kalender v3 API neu zu schreiben.Zugriff auf Google Kalender mit API v3

Ich habe den Google-API-Client implementiert, einen API-Schlüssel in meiner Entwicklerkonsole erstellt und den Prozess zur Authentifizierung durchlaufen. Ich habe eine accessToken, die ich in der Datenbank behalte und wenn sie abläuft, kann ich diese Token-Strafe auffrischen.

Allerdings bin ich bei allen allen Arbeiten mit dem Kalender nicht in der Lage.

Ich folge, was beschränkt Dokumentation bereits da draußen ist und haben die folgenden:

$this->client = new Google_Client(); 
$this->client->setClientId($this->settings['clientId']); 
$this->client->setClientSecret($this->settings['clientSecret']); 
$this->client->setAccessToken($this->settings['accessToken']); 

$service = new Google_Service_Calendar($this->client); 

$calendarList = $service->calendarList->listCalendarList(); 

while(true) { 
foreach ($calendarList->getItems() as $calendarListEntry) { 
    echo $calendarListEntry->getSummary(); 
} 

$pageToken = $calendarList->getNextPageToken(); 

if ($pageToken) { 
    $optParams = array('pageToken' => $pageToken); 
    $calendarList = $service->calendarList->listCalendarList($optParams); 
} else { 
    break; 
    } 
} 

Der Fehler, ich bin immer wieder heißt:

Message: Undefined property: Google_Service_Calendar_CalendarList::$items 

ich mein Google überprüft haben Das Kalenderkonto und alle Kalender werden gemeinsam genutzt. Es sollte also kein Problem geben, obwohl ich nicht verstehe, warum dies ein Problem ist, da ich sowieso ein authentifiziertes Konto verwende.

Kann jemand Rat geben?

Vielen Dank

+0

Haben Sie versucht, Ihre Kalender Anrufliste hier zu debuggen? https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list#try-it nur um sicherzustellen, dass Sie eine Antwort von "$ calendarList-> getItems()" haben –

+0

Ja, es gibt zurück Die Kalender sind in Ordnung, wenn ich die "try it" -Funktion verwende. – madebyhippo

+0

können Sie die Ausgabe von var_dump ($ calendarList-> getItems()) posten? –

Antwort

2

Der Fehler Sie bekommen

Message: Undefined property: Google_Service_Calendar_CalendarList::$items 

Ist da das Objekt leer ist

ersetzen

while(true) { 
foreach ($calendarList->getItems() as $calendarListEntry) { 
    echo $calendarListEntry->getSummary(); 
}Undefined property 

damit der Fehler loszuwerden.

if ($calendarList->getItems()) { 
    foreach ($calendarList->getItems() as $calendarListEntry) { 
    echo $calendarListEntry->getSummary(); 

    } 

einstellen Auch die folgenden

$this->client = new Google_Client(); 

werden muss,

$client = new Google_Client(); 
+0

zurückgibt Das wird auch nicht funktionieren. Gibt den Fehler zurück: "Kann den Rückgabewert der Methode nicht im Schreibkontext verwenden" – madebyhippo

+0

if ($ calendarList-> getItems()) { –

+0

Wenn Sie die erste Zeile mit meinem obigen Kommentar ersetzen, wird das Problem behoben –

Verwandte Themen