Я могу вставить событие в Календарь 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 (бесплатно для благотворительных организаций и образования), и поле «создано» больше не отображается.