В Календаре Google пользователи могут указать рабочее местоположение , чтобы люди знали свое местоположение при отправке приглашений на мероприятие. Эта функция доступна только для некоторых пользователей Календаря Google. Дополнительные сведения см. в разделе Включение и отключение рабочего местоположения для пользователей .
Чтение рабочих мест пользователей
Вы можете прочитать рабочие места пользователей в ресурсе Events
API календаря.
Чтобы вывести список событий рабочего местоположения, используйте метод events.list
, указав ['workingLocation']
в поле eventTypes
. Затем в возвращаемых объектах Event
убедитесь, что поле eventType
имеет значение 'workingLocation'
, и обратитесь к полю workingLocationProperties
для получения подробной информации о рабочем местоположении, заданном пользователем в Календаре Google.
Примечание. Возможность добавления или обновления рабочих мест все еще находится в разработке. Рабочее время в настоящее время не может управляться программно.
Пример кода скрипта Google Apps
Google Apps Script — это язык облачных сценариев на основе JavaScript, который позволяет создавать простые бизнес-приложения, интегрируемые с Google Workspace. Скрипты разрабатываются в браузерном редакторе кода, хранятся и запускаются на серверах Google. См. также краткое руководство по скрипту Google Apps , чтобы начать использовать скрипт Apps для отправки запросов в API календаря Google.
В следующих инструкциях описывается, как считывать рабочие местоположения с помощью API Календаря Google в качестве расширенной службы в скрипте Google Apps. Полный список ресурсов и методов Google Calendar API см. в справочной документации .
Создать скрипт
- Создайте сценарий, перейдя на script.google.com/create .
Включить API Календаря Google
- На левой панели рядом с пунктом «Службы» нажмите « службу».
- Выберите Google Calendar API и нажмите Добавить .
- После включения API отображается на левой панели. Доступные методы и классы в API можно перечислить с помощью ключевого слова Calendar в редакторе.
Обновите проект Google Cloud
Возможность считывания рабочих местоположений доступна только для проектов Google Cloud в Программе предварительного просмотра для разработчиков . Вам необходимо обновить номер проекта Google Cloud проекта Apps Script, чтобы получать события рабочего местоположения.
- В левой части редактора нажмите проекта .
- В разделе Проект Google Cloud Platform (GCP) нажмите Изменить проект .
- Введите номер проекта Google Cloud, который находится в программе предварительной версии для разработчиков, и нажмите «Установить проект» .
- С левой стороны выберите редактора, чтобы вернуться к редактору кода.
Запустите скрипт для чтения рабочих мест
В следующем примере кода показано, как считывать события рабочего местоположения в календаре.
Вставьте следующее в редактор скриптов.
/** * Lists working location events for given dates. * See https://developers.google.com/calendar/api/v3/reference/events/list */ function listWorkingLocationEvents() { const calendarId = 'primary' // Query parameters for the list request. const optionalArgs = { eventTypes: ['workingLocation'], showDeleted: false, singleEvents: true, timeMax: '2023-04-01T00:00:00+01:00', timeMin: '2023-03-27T00:00:00+01:00', } try { var response = Calendar.Events.list(calendarId, optionalArgs ); response.items.forEach(event => console.log('%s: %s', event.start.date, parseWorkingLocation(event))); } catch (exception) { console.log(exception.message); } } /** * Reads the working location event with the given eventId. * See https://developers.google.com/calendar/api/v3/reference/events/get */ function readWorkingLocationEvent() { const calendarId = 'primary'; // Replace with a valid eventId. const eventId = "sample-event-id"; try { const event = Calendar.Events.get(calendarId, eventId); console.log('%s: %s', event.start.date, parseWorkingLocation(event)); } catch (exception) { console.log(exception.message); } } /** * Parses working location properties of an event into a string. * See https://developers.google.com/calendar/api/v3/reference/events#resource */ function parseWorkingLocation(event) { if(event.eventType != "workingLocation") { throw new Error("'" + event.summary +"' is not a working location event."); } const workingLocation = event.workingLocationProperties; if (workingLocation) { if (workingLocation.homeOffice) { return 'Home'; } if (workingLocation.officeLocation) { return workingLocation.officeLocation.label; } if (workingLocation.customLocation) { return workingLocation.customLocation.label; } } return 'No Location'; }
Над редактором кода выберите функцию для запуска в раскрывающемся меню и нажмите «Выполнить» .
При первом выполнении он предлагает вам авторизовать доступ. Проверьте и разрешите Apps Script доступ к вашему календарю.
Вы можете проверить результаты выполнения скрипта в журнале выполнения , который появляется в нижней части окна.