2012-04-02 4 views
1

Ich versuche, Google Kalender API Version 3 (PHP) zu verwenden, um Kalender zu verwalten.Warum verursacht Google Kalender API v3 PHP diesen Fehler beim Buchen im Kalender, aber nicht beim Abrufen von Informationen?

I kann leicht Informationen über einen Kalender abzurufen, wie Kalendernamen und Kalenderlisten, aber ich bin nicht erfolgreich in tatsächlich ‚Schreiben‘ zu einem Kalender wie Ereignisse hinzufügen oder einen sekundären Kalender zu erstellen. Ich erhalte bei meinem Versuch immer den folgenden Fehler.

Jeder da draußen, der helfen kann? Ich habe überall in der Dokumentation von Google nachgesehen, kann aber keine Antworten finden.

Der Fehler (wenn zu schreiben versuchen, abrufen nicht info):

Fatal error: abgefangene Ausnahme 'apiServiceException' mit der Meldung 'Fehler beim Aufruf POST https://www.googleapis.com/calendar/v3/calendars?key=eyfheufheuwehwi: (400) ungültigen Wert' in/home/incs/google -api-php-client/src/io/apiREST.php: 86 Stapelverfolgung: # 0 /home/incs/google-api-phph-client/src/io/apiREST.php(56): apiREST :: decodeHttpResponse (Objekt (apiHttpRequest)) # 1 /home/incs/google-api-phph-client/src/service/apiServiceResource.php(187): apiREST :: execute (Objekt (apiServiceRequest)) # 2/home/incs/google- api-php-client/src/contrib/apiCalendarService.php (228): apiServiceResource -> __ Aufruf ('Einfügen', Array) # 3 /home/public_html/gateway/google/index.php(130): CalendarsServiceResource-> einfügen (Objekt (Kalender)) # 4 {main} geworfen in/home/incs/google-a pi-php-client/src/io/apiREST.php auf der Leitung 86

der Code (übrigens meine Zugriffsschlüssel in der config.php gesetzt werden damit die kommentierten $ client Linien)

require("/home/incs/google-api-php-client/src/apiClient.php"); 
require("/home/incs/google-api-php-client/src/contrib/apiCalendarService.php"); 
session_start(); 

$client = new apiClient(); 
$client->setApplicationName("Google Calendar PHP Starter Application"); 

// Visit https://code.google.com/apis/console?api=calendar to generate your 
// client id, client secret, and to register your redirect uri. 
// $client->setClientId('insert_your_oauth2_client_id'); 
// $client->setClientSecret('insert_your_oauth2_client_secret'); 
// $client->setRedirectUri('insert_your_oauth2_redirect_uri'); 
// $client->setDeveloperKey('insert_your_developer_key'); 
$service = new apiCalendarService($client); 
if (isset($_GET['logout'])) 
{ 
    unset($_SESSION['token']); 
} 

if (isset($_GET['code'])) 
{ 
    $client->authenticate(); 
    $_SESSION['token'] = $client->getAccessToken(); 
    header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); 
} 

if (isset($_SESSION['token'])) 
{ 
    $client->setAccessToken($_SESSION['token']); 
} 

if ($client->getAccessToken()) 
{ 

    $calendar = new Calendar(); 
    $calendar->setSummary('calendarSummary'); 
    $calendar->setTimeZone('American/Los_Angeles'); 

    $createdCalendar = $service->calendars->insert($calendar); 


    $calList = $service->calendarList->listCalendarList(); 
    print "<h1>Calendar List</h1><pre>" . print_r($calList, true) . "</pre>"; 


    $_SESSION['token'] = $client->getAccessToken(); 
} 
else 
{ 
    $authUrl = $client->createAuthUrl(); 
    print "<a class='login' href='$authUrl'>Connect Me!</a>"; 
} 

Antwort

4

Wie es jetzt ist, hat Google einen Fehler in ihrem Codebeispiel (wo ich den Code bekommen habe, den ich hier eingefügt habe). In diesem Beispiel werden die folgenden Anforderungen für sie korrigiert zu arbeiten:

$calendar->setTimeZone('American/Los_Angeles'); 

muss

$calendar->setTimeZone('America/Los_Angeles'); 

korrigiert werden Und dann wird kein Fehler ausgelöst werden.

+0

Danke für den Bericht, es wurde in der Dokumentation behoben! – Alain

+0

@Alain du bist willkommen. V3 funktioniert großartig thx! – flukyspore

Verwandte Themen