Как создать событие Календаря Google без напоминания / Как получить учетные записи службы для олицетворения пользователей

Я могу вставить событие в Календарь Google с помощью библиотеки PHP, но я хочу создать событие без напоминания (на самом деле, я хочу создать его с напоминанием, которое не является значением по умолчанию, но чтобы все было просто, я буду просто отключите напоминание).

Вот мой код, чтобы отключить напоминание:

$reminders = new Google_EventReminders(); $reminders->setUseDefault(false); $event->setReminders($reminders); 

Кажется, это успешно отправлено, и я получаю успешный код возврата, но когда я смотрю на событие в календаре, я вижу, что он по-прежнему имеет набор напоминаний по умолчанию.

Я везде искал решение – и я обнаружил, что это было: http://googleappsdeveloper.blogspot.co.uk/2012/01/calendar-api-v3-best-practices.html, где говорится: «Мне нравится напоминания по умолчанию в календаре, это личные напоминания для пользователя, который вошел в систему, и не будут влиять на настройки, которые другие могут иметь для одного и того же календаря или события ».

Это заставило меня задуматься о учетной записи службы, которую я использую для доступа к календарю. Когда я смотрю на события, которые были вставлены, все они говорят: «Создано» my_long_id@developer.gserviceaccount.com. Значит ли это, что уведомление относится только к учетной записи разработчика, а не к основной учетной записи? Чтобы поддержать эту теорию, я смог успешно вставить событие, используя функцию Try It в документации API Google, но эти события не имеют в них поля «created by».

Поэтому я исследовал, как получить учетную запись службы, чтобы олицетворять пользователя, и я застрял. Вот что я пробовал:

 $client->setAssertionCredentials(new Google_AssertionCredentials( SERVICE_ACCOUNT_NAME, array('LINK TO auth/calendar', "LINK TO auth/calendar.readonly"), $key, 'notasecret', 'LINK TO oauth.net/grant_type/jwt/1.0/bearer', 'my_email_address AT gmail.com')); 

(мое редактирование для замены LINK TO и AT для преодоления ограничений SO) Но это дает следующую ошибку:

Google_AuthException 'с сообщением' Ошибка обновления токена OAuth2, сообщение: '{"error": "access_denied", "error_description": "Запрошенные области не разрешены: LINK TO auth / calendar LINK TO auth / calendar.readonly"

(Оставив окончательный параметр адреса электронной почты, отлично работает, но вставляет событие с учетной записью разработки в качестве создателя)

Кто-нибудь знает, как это исправить (будь то напоминания или олицетворение сделают!)? Большое спасибо.

Я решил, что поле «created by» является ограничением учетных записей службы при работе с регулярными учетными записями gmail, которые не работают очень хорошо. С тех пор я перешел на учетную запись Google Apps (бесплатно для благотворительных организаций и образования), и поле «создано» больше не отображается.