Как установить цвет календаря Google, созданного с помощью API

#php #calendar #google-calendar-api #google-api-php-client

#php #Календарь #google-calendar-api #google-api-php-client

Вопрос:

Я использую API календаря Google с PHP. Я знаю, как создать новый календарь, но как мне установить цвет календаря, который я создал? Я искал несколько часов. Я пробовал

 $calendar -> setColor();
  

Я пробовал

 $calendar -> setColorId();
  

оба из которых являются неопределенными методами. Я нашел документацию о том, как изменить определения цвета. И отправил цвет события с

 $event -> setColorId();
  

Но я нигде не могу найти ничего о том, как установить цвет календаря.

Ответ №1:

Я думаю, вы можете изменить цвет календаря, используя CalendarList: update .

Здесь указано, что CalendarList это коллекция всех записей календаря, которые пользователь добавил в свой список (отображается на левой панели веб-интерфейса). Вы можете использовать его для добавления и удаления существующих календарей в / из списка пользователей. Вы также используете его для извлечения и установки значений пользовательских свойств календаря, таких как напоминания по умолчанию. Другим примером является цвет переднего плана, поскольку разные пользователи могут устанавливать разные цвета для одного и того же календаря.

Кроме того, API календаря теперь включает поля для пользовательских цветов для календарей. Ресурс CalendarList теперь включает backgroundColor foregroundColor в себя свойства и, которые заменяют colorId . Чтобы использовать новые пользовательские цвета, установите colorRgbFormat значение True при выполнении обновлений.

Источник: Что нового в версии v3 — Пользовательские цвета для календарей

Ответ №2:

Основываясь на принятом @KENdi ответе, мне было трудно разобраться в синтаксисе. Для тех, кто хочет быстрого решения на PHP:

$updatedCalendarListEntry = $service->calendarList->update($calendarListEntry->getId(), $calendarListEntry, array("colorRgbFormat" => true));

Где $calendarListEntry находится объект CalendarList, который вы можете получить с помощью метода get.

Это позволяет использовать $calendarListEntry->setBackgroundColor("$calColor); where $calColor — строку, содержащую шестнадцатеричный цветовой код, например. 7e7e7e.