У меня вопрос о Google Calendar API .
Я получаю API календаря Google с помощью PHP и создаю новое событие с учетной записью службы.
Если я снова прочитаю календарь на php progrum
, progrum
, написанная на php с учетной записью службы, не может быть загружена.
В чем причина проблемы?
это спецификация, которую php не может читать в расписании, созданном из php с учетной записью службы?
Информация о настройке:
Я использую autoload.php для google-api-php-client-1-master.
Это календарь Google V3.
В идентификаторе календаря общей учетной записи электронной почты (учетной записи службы) присваивается «полномочие на изменение расписания» и может быть записано в календарь.
Расписание, которое владелец, созданный непосредственно в Календаре Google, может быть прочитан php progrum, но расписание, созданное php с учетной записью службы, не может быть загружено.
Мой код
//read event $json_path = '../json/XXXX-123465789.json'; $json_string = file_get_contents($json_path, true); $json = json_decode($json_string, true); $private_key = $json['private_key']; $client_email = $json['client_email']; $scopes = array(Google_Service_Calendar::CALENDAR); $credentials = new Google_Auth_AssertionCredentials( $client_email, $scopes, $private_key ); $client = new Google_Client(); $client->setApplicationName("Google Calendar PHP API"); $client->setAssertionCredentials($credentials); if ($client->getAuth()->isAccessTokenExpired()) { $client->getAuth()->refreshTokenWithAssertion(); } $service = new Google_Service_Calendar($client); $read_start = mktime(0, 0, 0, 4, 10, 2017); $read_end = mktime(0, 0, 0, 4, 17, 2017); $calendarId = '123456789@group.calendar.google.com'; $optParams = array( 'maxResults' => 99, 'orderBy' => 'startTime', 'singleEvents' => TRUE, 'timeMin' => date('c', $read_start_date), 'timeMax' => date('c', $read_end_date), ); $results = $service->events->listEvents($calendarId, $optParams); //create event $json_path = './json/xxx-123456789.json'; $json_string = file_get_contents($json_path, true); $json = json_decode($json_string, true); $calendarId = '123456789@group.calendar.google.com'; $private_key = $json['private_key']; $client_email = $json['client_email']; $scopes = array(Google_Service_Calendar::CALENDAR); $credentials = new Google_Auth_AssertionCredentials( $client_email, $scopes, $private_key ); $client = new Google_Client(); $client->setApplicationName("Google Calendar"); $client->setAssertionCredentials($credentials); if ($client->getAuth()->isAccessTokenExpired()) { $client->getAuth()->refreshTokenWithAssertion(); } $service = new Google_Service_Calendar($client); $meeting_end_time = _get_sum_time($set_time,$meeting_time); $event = new Google_Service_Calendar_Event(array( 'summary' => 'created by service account', 'start' => array( 'dateTime' => '2017-04-04T00:12:00+09:00', 'timeZone' => 'Asia/Tokyo', ), 'end' => array( 'dateTime' => '2017-04-04T00:13:00+09:00', 'timeZone' => 'Asia/Tokyo', ), )); $event = $service->events->insert($calendarId, $event);
Однако создатель события создается по адресу учетной записи службы, а не учетной записи владельца.
Не могли бы вы рассказать мне этот ответ?