Рекомендации

Улучшите общее впечатление пользователей, следуя этим рекомендациям по разработке дополнений.

Общие передовые методы

Рекомендуется использовать следующие передовые методы при разработке всех дополнений.

Определите права собственности на дополнение перед началом работы.

Дополнения определяются проектами Apps Script, которые должны принадлежать определенной учетной записи или размещаться на общем диске . Перед написанием дополнения определите, какая учетная запись должна владеть проектом, а какая — выступать в качестве издателя. Также определите, какие учетные записи будут выступать в качестве соавторов, и убедитесь, что эти учетные записи имеют доступ к проекту скрипта и связанному с ним проекту Google Cloud .

Расширяйте возможности Google Workspace, а не дублируйте их.

Дополнения предназначены для расширения функциональности приложений Google Workspace, к которым они относятся, или для автоматизации сложных задач. Дополнения, которые просто дублируют уже существующую функциональность приложения или не вносят существенных улучшений в рабочий процесс, вряд ли пройдут проверку на соответствие требованиям для публикации.

Держите прицел узким.

При явном определении областей действия (scopes) всегда выбирайте наименее разрешительный набор возможных областей. Например, не запрашивайте полный доступ к календарю пользователя с помощью области действия https://www.googleapis.com/auth/calendar если ему нужен только доступ для чтения. Для доступа только для чтения используйте область действия https://www.googleapis.com/auth/calendar.readonly .

Не стоит слишком полагаться на библиотеки.

Использование библиотек Apps Script может привести к замедлению работы вашего дополнения по сравнению с тем, если бы весь код Apps Script был сосредоточен в одном проекте скрипта. Хотя библиотеки Apps Script работают в дополнениях, их использование может привести к снижению производительности. Избегайте включения ненужных библиотек в ваш проект и подумайте о способах уменьшения зависимости вашего дополнения от них.

Описанная выше задержка относится только к проектам Apps Script, используемым в качестве серверных библиотек. Вы можете свободно использовать клиентские JavaScript-библиотеки, такие как jQuery, без возникновения этой задержки.

Рекомендации по использованию надстройки Google Workspace

Приведенные ниже рекомендации относятся только к надстройкам Google Workspace и использованию сервиса Card .

Используйте всего несколько карт.

Если дополнение использует слишком много карточек, настройка навигации становится сложной и трудной для управления.

Избегайте импульса создавать больше карточек, чем необходимо.

Используйте функции создания виджетов

При написании кода, создающего Card или другие сложные объекты пользовательского интерфейса, рекомендуется выносить этот код в отдельную функцию. Эта функция создания должна просто формировать объект и возвращать его. Это позволит быстро перегенерировать объект всякий раз, когда необходимо обновить пользовательский интерфейс. Не забудьте вызвать build() после использования классов-конструкторов в службе Card .

Делайте карты простыми.

Если в карточке слишком много виджетов, она может занимать слишком большую часть экрана и стать менее полезной. Хотя большие разделы карточек отображаются как сворачиваемые элементы интерфейса, это скрывает информацию от пользователя. Стремитесь оптимизировать ваше дополнение и предоставлять пользователю только то, что ему нужно, и ничего лишнего.

Используйте карточки ошибок

Создайте карточки для описания ситуаций с ошибками. Если ваше дополнение выдает ошибку, оно должно отображать карточку с информацией об ошибке и инструкциями по ее исправлению, если это возможно. Например, если ваше дополнение не смогло подключиться к сервису, не принадлежащему Google, из-за сбоя авторизации, отобразите карточку с этим сообщением и попросите пользователя подтвердить используемые данные учетной записи.

Пишите тесты и тестовые сообщения.

Необходимо тщательно тестировать все создаваемые дополнения. Разработайте тестовые функции, которые создают карточки и виджеты, используя тестовые данные, а затем убедитесь, что объекты создаются должным образом.

При использовании функций обратного вызова действий обычно необходимо создать объект ответа. Для проверки правильности создания ответов можно использовать следующие операторы:

    Logger.log(response.printJson());

Запускайте тестовые функции, созданные вами непосредственно в редакторе Apps Script, используя меню «Выполнить» . Когда у вас будет работоспособное дополнение, обязательно установите неопубликованную версию , чтобы вы могли его протестировать.

Используйте тестовые данные, подходящие для каждого приложения, на которое распространяется действие дополнения. Например, если дополнение расширяет функциональность Gmail, вам, вероятно, потребуется несколько тестовых писем и их идентификаторов сообщений, чтобы убедиться, что дополнение работает должным образом при обработке различного содержимого сообщений. Вы можете получить идентификатор сообщения, перечислив сообщения с помощью метода users.messages.list в API Gmail или воспользовавшись сервисом Gmail в Apps Script.

Рекомендации по проведению конференций по календарю

Если ваше дополнение интегрирует сторонние инструменты для проведения конференций в Google Календарь, следуйте этим дополнительным рекомендациям:

Не упрощайте метод onCreateFunction

Каждая onCreateFunction определенная в вашем манифесте, вызывается синхронно, когда пользователь пытается создать конференцию такого типа. Убедитесь, что эти функции выполняют только минимально необходимую работу для создания конференции. Слишком много действий в этих функциях может привести к замедлению работы вашего дополнения.

Используйте соответствующие поля ConferenceData для данных о конференции.

При создании объектов ConferenceData вы можете заполнить их подробной информацией о конференции (коды доступа, номера телефонов, PIN-коды, URI и т. д.). Обязательно используйте соответствующее поле EntryPoint для этой информации. Не размещайте эти данные в поле примечаний ConferenceData .

Не добавляйте информацию о конференции в событие календаря.

Вашему дополнению не нужно добавлять информацию о созданных сторонними конференциях в описание события в Календаре. Календарь делает это автоматически при необходимости.