Возможно ли получить доступ к сервису календаря Google при использовании метода account-account? Google говорит косвенно, это невозможно, потому что служба календаря не входит в список поддерживаемых сервисов в документации метода service-account, но я лично думаю, что это возможно. Но как?Создание событий календаря Google с учетной записью php и службы - проверка подлинности проблемы
Я пишу приложение календаря в php, и там я хочу создавать события календаря в свой Google-календарь без действия пользователя (например, логин).
я узнал, что первое приложение должно аутентифицировать себя на сервер Google, используя сервис-счет-метод с помощью ключа-файла .p12
Я использую следующий код для проверки подлинности: (скачано FOM здесь: http://code.google.com/p/google-api-php-client/source/browse/trunk/examples/prediction/serviceAccount.php)
session_start();
require_once 'google-api/src/Google_Client.php';
require_once 'google-api/src/contrib/Google_CalendarService.php';
require_once 'google-api/src/contrib/Google_PredictionService.php';
$client = new Google_Client();
$client->setApplicationName(GOOGLE_APPLICATION_NAME);
$client->setClientId(GOOGLE_CLIENT_ID);
$keyfile = file_get_contents(GOOGLE_KEY_FILE);
$client->setAssertionCredentials(new Google_AssertionCredentials(
GOOGLE_SERVICE_ACCOUNT_NAME,
array('https://www.googleapis.com/auth/prediction'),
$keyfile)
);
Но этот логин, похоже, не работает. Как узнать, был ли сервер в данный момент зарегистрирован?
Я хочу продолжать с этим:
$cal = new Google_CalendarService($client);
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
if ($client->getAccessToken()) {
$calList = $cal->calendarList->listCalendarList(); // <- this is line 55
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>";
}
Но в строке 55 приходит сообщение об ошибке:
Fatal error: Uncaught exception 'Google_ServiceException' with message 'Error calling GET https://www.googleapis.com/calendar/v3/users/me/calendarList : (403) Insufficient Permission' in /usr/www/users/leuchtk/html/google-api/src/io/Google_REST.php:66
Stack trace: #0 /usr/www/users/leuchtk/html/google-api/src/io/Google_REST.php(36): Google_REST::decodeHttpResponse(Object(Google_HttpRequest)) #1 /usr/www/users/leuchtk/html/google-api/src/service/Google_ServiceResource.php(186): Google_REST::execute(Object(Google_HttpRequest)) #2 /usr/www/users/leuchtk/html/google-api/src/contrib/Google_CalendarService.php(205): Google_ServiceResource->__call('list', Array) #3 /usr/www/users/leuchtk/html/i_termine_admin.php(55): Google_CalendarListServiceResource->listCalendarList() #4 /usr/www/users/leuchtk/html/termine_admin.php(113): include('/usr/www/users/...') #5 {main} thrown in /usr/www/users/leuchtk/html/google-api/src/io/Google_REST.php on line 66
Так выглядит, приложение не вошли в систему Я полностью. потерянный в этом коде на данный момент. Спасибо за какой-то мало света, что не хватает там ...
Marco