Wie kann ich eine Liste mit *allen* zur Verfügung Kalender mit Google Kalender API v3 von Google / Google-API-Client-Bibliothek?
Habe ich versucht, Zugriff auf den Google Kalender API v3 mit PHP. Zunächst möchte ich einfach die Liste der user-Kalender zugänglich sind mein Aufruf an die API.
Tun, heruntergeladen habe ich die Google-API-PHP-Client-Bibliothek und die versucht haben, verwenden Sie den folgenden code (das ist sourced, mit meinen Anpassungen, von https://mytechscraps.wordpress.com/2014/05/15/accessing-google-calendar-using-the-php-api/ ):
<?php
//error_reporting(0);
//@ini_set('display_errors', 0);
//If you've used composer to include the library, remove the following line
//and make sure to follow the standard composer autoloading.
//https://getcomposer.org/doc/01-basic-usage.md#autoloading
require_once './google-api-php-client-master/autoload.php';
//Service Account info
$client_id = '754612121864-pmdfssdfakqiqblg6lt9a.apps.googleusercontent.com';
$service_account_name = '754674507864-pm1dsgdsgsdfsdfsdfdflg6lt9a@developer.gserviceaccount.com';
$key_file_location = 'Calendar-7dsfsdgsdfsda953d68dgdsgdsff88a.p12';
$client = new Google_Client();
$client->setApplicationName("Calendar");
$service = new Google_Service_Calendar($client);
$key = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials(
$service_account_name,
array('https://www.googleapis.com/auth/calendar.readonly'),
$key
);
$client->setAssertionCredentials($cred);
$cals = $service->calendarList->listCalendarList();
print_r($cals);
?>
Habe ich einen service-Konto in der Google Entwickler-Konsole, und generiert OAuth details, die ich verwendet habe, um die passenden Variablen, wie man an den code.
Dieser code gibt die folgenden:
Google_Service_Calendar_CalendarList Object ( [collection_key:protected] => items [internal_gapi_mappings:protected] => Array ( ) [etag] => "14171313334000" [itemsType:protected] => Google_Service_Calendar_CalendarListEntry [itemsDataType:protected] => array [kind] => calendar#calendarList [nextPageToken] => [nextSyncToken] => 000014121268327000 [modelData:protected] => Array ( [items] => Array ( [0] => Array ( [kind] => calendar#calendarListEntry [etag] => "1417721316542000" [id] => [email protected] [summary] => [email protected] [timeZone] => Europe/London [colorId] => 23 [backgroundColor] => #cd74e6 [foregroundColor] => #000000 [selected] => 1 [accessRole] => reader [defaultReminders] => Array ( ) ) ) ) [processed:protected] => Array ( ) )
Das problem ist, dass dies scheint die Rückkehr details nur eine Kalender. Das ist der Kalender für [email protected] (der einzige, den ich explizit freigegeben mit meinem service).
Weiß ich aber, das google-Konto hat read-only Zugriff auf eine Reihe von anderen Benutzers-Kalender (ich kann Sie sehen wenn Sie sich in Google Kalender, da dieser Benutzer).
Außerdem, wenn ich das Google Apps-Explorer auf diese Seite: https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list#auth , während Sie angemeldet sind, in meinem google-Konto als [email protected], ich bekomme details alle dieser andere Kalender.
So, ich bin versucht, herauszufinden, warum die Apps Explorer zeigt mir alle anderen Kalender, und noch der PHP-code nicht?
- Haben Sie versucht, um Kalender über Kalender selbst Dienste und überprüfen Sie, ob diese aufgelistet werden ? developers.google.com/google-apps/calendar/v3/reference/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einem service-Konto nicht brauchen, um aufgefordert, ein Benutzer für den Zugriff, weil Sie haben, um es einzurichten. Gehen Sie auf der Google Kalender Webseite. Finden Sie die Kalender-Einstellungen gehen , dann auf die Registerkarte Kalender finden Sie die Kalender aus, den Sie zugreifen möchten, und klicken Sie auf "Freigegeben: Einstellungen Bearbeiten" fügen Sie das service-Konto-E-Mail-Adresse wie einen Personen, die E-Mail-Adresse. Diese werden dem service-Konto den gleichen Zugang, als ob Sie, wo Sie die gemeinsame Nutzung mit anderen Benutzern.
code entrissen tutorial Google Kalender-API mit PHP – Service-Konto