2014-12-15 14 views
5

Próbuję przepisać starszą aplikację, której wcześniej nie pisałem przy użyciu interfejsu API Google Calendar v3.Uzyskiwanie dostępu do Kalendarza Google przy użyciu interfejsu API v3

Zaimplementowałem klienta google-api-php, utworzyłem klucz API w mojej konsoli programisty i przeszedłem przez proces uwierzytelniania. Mam accessToken, który utrzymuję się w bazie danych i kiedy wygasa, mogę odświeżyć token dobrze.

Jednak nie jestem w stanie wykonać żadnej pracy z Kalendarze w ogóle.

Obserwuję co ogranicza dokumentacja jest już tam i mają następujące:

$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; 
    } 
} 

Błąd, który dostaję z powrotem jest:

Message: Undefined property: Google_Service_Calendar_CalendarList::$items 

Sprawdziłem mój Google Konto kalendarza i wszystkie kalendarze są udostępniane, więc nie powinno być problemu, chociaż nie widzę powodu, dla którego jest to problem, ponieważ i tak używam uwierzytelnionego konta.

Ktoś może zaoferować radę?

Wiele Dzięki

+0

Czy próbowałeś debugować listy kalendarzy wezwanie tutaj? https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list#try-it, aby upewnić się, że masz odpowiedź z "$ calendarList-> getItems()" –

+0

Tak, to zwraca kalendarze są w porządku, gdy korzystam z funkcji "wypróbuj". – madebyhippo

+0

można opublikować wyjście z var_dump ($ calendarList-> getItems())? –

Odpowiedz

2

Błąd otrzymujesz

Message: Undefined property: Google_Service_Calendar_CalendarList::$items 

Czy dlatego, że obiekt jest pusty

Wymień

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

o to, aby pozbyć się tego błędu.

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

    } 

dostosować się również następujące

$this->client = new Google_Client(); 

musi być

$client = new Google_Client(); 
+0

To też nie działa. Zwraca błąd: "Nie można użyć wartości zwracanej przez metodę w kontekście zapisu" – madebyhippo

+0

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

+0

Jeśli zastąpisz pierwszy wiersz moim komentarzem powyżej, naprawi to problem –

Powiązane problemy