На этой странице объясняется, как создать дополнение Google Workspace, позволяющее пользователям Документов Google просматривать ссылки из стороннего сервиса.
Дополнение Google Workspace может обнаруживать ссылки вашего сервиса и предлагать пользователям Документов Google просмотреть их. Вы можете настроить надстройку для предварительного просмотра нескольких шаблонов URL-адресов, таких как ссылки на обращения в службу поддержки, потенциальных клиентов и профили сотрудников.
Как пользователи просматривают ссылки
Для предварительного просмотра ссылок в документе Google Docs пользователи взаимодействуют со смарт-чипами и карточками :
Когда пользователи вводят или вставляют URL-адрес в документ, Документы Google предлагают им заменить ссылку смарт-чипом. Смарт-чип отображает значок и короткое название или описание содержимого ссылки. Когда пользователь наводит курсор на чип, он видит интерфейс карты, в котором предварительно отображается дополнительная информация о файле или ссылке.
В следующем видео показано, как пользователь преобразует ссылку в смарт-чип и просматривает карточку:
Предпосылки
Скрипт приложений
- Аккаунт Google Workspace .
- Надстройка Google Workspace. Чтобы создать надстройку, следуйте этому краткому руководству .
Node.js
- Аккаунт Google Workspace .
- Надстройка Google Workspace. Чтобы создать надстройку, следуйте этому краткому руководству .
Питон
- Аккаунт Google Workspace .
- Надстройка Google Workspace. Чтобы создать надстройку, следуйте этому краткому руководству .
Джава
- Аккаунт Google Workspace .
- Надстройка Google Workspace. Чтобы создать надстройку, следуйте этому краткому руководству .
Необязательно: настройте аутентификацию для сторонней службы.
Если ваша надстройка подключается к сервису, для которого требуется авторизация, пользователи должны пройти аутентификацию в сервисе для предварительного просмотра ссылок. Это означает, что когда пользователи впервые вставляют ссылку из вашего сервиса в документ Google Docs, ваше дополнение должно вызывать процесс авторизации.
Чтобы настроить службу OAuth или пользовательское приглашение авторизации, см. одно из следующих руководств:
Если вы создали надстройку с помощью Apps Script, см. раздел Подключение к службам, не относящимся к Google, из надстройки Google Workspace .
Если вы создали надстройку с использованием другой среды выполнения, см. раздел Подключение надстройки к сторонней службе .
Настройте предварительный просмотр ссылок для вашего дополнения
В этом разделе объясняется, как настроить предварительный просмотр ссылок для вашего дополнения, который включает следующие шаги:
- Настройте предварительный просмотр ссылок в ресурсе развертывания надстройки или в файле манифеста.
- Создайте смарт-чип и интерфейс карты для ваших ссылок.
Настроить превью ссылок
Чтобы настроить предварительный просмотр ссылок, укажите следующие разделы и поля в ресурсе развертывания надстройки или в файле манифеста:
- В разделе
addOns
добавьте полеdocs
, чтобы расширить Документы Google. В поле
docs
реализуйте триггерlinkPreviewTriggers
, включающий функциюrunFunction
(эта функция определяется в следующем разделе Создание смарт-чипа и карты ).Чтобы узнать, какие поля можно указать в триггере
linkPreviewTriggers
, см. справочную документацию по файлам манифеста сценариев приложений или ресурсы по развертыванию для других сред выполнения .В поле
oauthScopes
добавьте областьhttps://www.googleapis.com/auth/workspace.linkpreview
, чтобы пользователи могли авторизовать надстройку для предварительного просмотра ссылок от их имени.
В качестве примера см. раздел oauthScopes
и addons
ресурса развертывания, который настраивает предварительный просмотр ссылок для службы обращения в службу поддержки:
{
"oauthScopes": [
"https://www.googleapis.com/auth/workspace.linkpreview"
],
"addOns": {
"common": {
"name": "Preview support cases",
"logoUrl": "https://www.example.com/images/company-logo.png",
"layoutProperties": {
"primaryColor": "#dd4b39"
}
},
"docs": {
"linkPreviewTriggers": [
{
"runFunction": "caseLinkPreview",
"patterns": [
{
"hostPattern": "example.com",
"pathPrefix": "support/cases"
},
{
"hostPattern": "*.example.com",
"pathPrefix": "cases"
},
{
"hostPattern": "cases.example.com"
}
],
"labelText": "Support case",
"logoUrl": "https://www.example.com/images/support-icon.png",
"localizedLabelText": {
"es": "Caso de soporte"
}
}
]
}
}
}
В этом примере надстройка Google Workspace отображает ссылки на службу поддержки компании. Надстройка определяет три шаблона URL для предварительного просмотра ссылок. Всякий раз, когда ссылка соответствует одному из шаблонов URL в документе Google Docs, функция обратного вызова caseLinkPreview
создает и отображает смарт-чип и карту.
Создайте смарт-чип и карту
Чтобы вернуть смарт-чип и карту по ссылке, вы должны реализовать любые функции, которые вы указали в объекте linkPreviewTriggers
.
Когда пользователь взаимодействует со ссылкой, которая соответствует указанному шаблону URL, срабатывает триггер linkPreviewTriggers
, и его функция обратного вызова передает объект события docs.matchedUrl.url
в качестве аргумента. Вы используете полезную нагрузку этого объекта события для создания смарт-чипа и карты для предварительного просмотра ссылки.
Например, для надстройки, которая указывает шаблон URL- example.com/cases
, если пользователь просматривает ссылку https://www.example.com/cases/123456
, возвращается следующая полезная нагрузка события:
JSON
{ "docs": { "matchedUrl": { "url": "https://www.example.com/support/cases/123456" } } }
Для создания интерфейса карточки используются виджеты для отображения информации о ссылке. Вы также можете создавать действия, которые позволяют пользователям открывать ссылку или изменять ее содержимое. Список доступных виджетов и действий см. в разделе Поддерживаемые компоненты для карт предварительного просмотра .
Чтобы построить смарт-чип и карту для предварительного просмотра ссылки:
- Реализуйте функцию, указанную в разделе
linkPreviewTriggers
ресурса развертывания надстройки или файла манифеста:- Функция должна принимать в качестве аргумента объект события, содержащий
docs.matchedUrl.url
, и возвращать один объектCard
. - Если для вашей службы требуется авторизация, функция также должна вызывать поток авторизации .
- Функция должна принимать в качестве аргумента объект события, содержащий
- Для каждой карты предварительного просмотра реализуйте функции обратного вызова, используемые для обеспечения интерактивности виджета для интерфейса. Например, если вы включаете кнопку в интерфейс, она должна иметь прикрепленное
Action
и реализованную функцию обратного вызова, которая запускается при нажатии кнопки.
Следующий код создает функцию обратного вызова caseLinkPreview
:
Скрипт приложений
Node.js
Питон
Джава
Поддерживаемые компоненты для карт предварительного просмотра
Дополнения Google Workspace поддерживают следующие виджеты и действия для карточек предварительного просмотра ссылок:
Скрипт приложений
Поле обслуживания карты | Тип |
---|---|
TextParagraph | Виджет |
DecoratedText | Виджет |
Image | Виджет |
IconImage | Виджет |
ButtonSet | Виджет |
TextButton | Виджет |
ImageButton | Виджет |
Grid | Виджет |
Divider | Виджет |
OpenLink | Действие |
Navigation | Действие Поддерживается только метод updateCard . |
JSON
Поле карты ( google.apps.card.v1 ) | Тип |
---|---|
TextParagraph | Виджет |
DecoratedText | Виджет |
Image | Виджет |
Icon | Виджет |
ButtonList | Виджет |
Button | Виджет |
Grid | Виджет |
Divider | Виджет |
OpenLink | Действие |
Navigation | Действие Поддерживается только метод updateCard . |
Полный пример: надстройка обращения в службу поддержки
В следующем примере используется надстройка Google Workspace, которая предварительно отображает ссылки на обращения в службу поддержки компании и профили сотрудников.
Пример делает следующее:
- Превью ссылаются на обращения в службу поддержки, например
https://www.example.com/support/cases/1234
. Смарт-чип отображает значок поддержки, а карточка предварительного просмотра содержит идентификатор дела и описание. - Предварительный просмотр ссылок на агентов службы поддержки, таких как
https://www.example.com/people/rosario-cruz
. Смарт-чип отображает значок человека, а карточка предварительного просмотра содержит имя сотрудника, адрес электронной почты, должность и фотографию профиля. - Если языковой стандарт пользователя установлен на испанский, смарт-чип локализует свой
labelText
на испанский язык.
Ресурс развертывания
Скрипт приложений
{
"timeZone": "America/New_York",
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"oauthScopes": [
"https://www.googleapis.com/auth/workspace.linkpreview"
],
"addOns": {
"common": {
"name": "Preview support cases",
"logoUrl": "https://developers.google.com/workspace/add-ons/images/link-icon.png",
"layoutProperties": {
"primaryColor": "#dd4b39"
}
},
"docs": {
"linkPreviewTriggers": [
{
"runFunction": "caseLinkPreview",
"patterns": [
{
"hostPattern": "example.com",
"pathPrefix": "support/cases"
},
{
"hostPattern": "*.example.com",
"pathPrefix": "cases"
},
{
"hostPattern": "cases.example.com"
}
],
"labelText": "Support case",
"localizedLabelText": {
"es": "Caso de soporte"
},
"logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png"
},
{
"runFunction": "peopleLinkPreview",
"patterns": [
{
"hostPattern": "example.com",
"pathPrefix": "people"
}
],
"labelText": "People",
"localizedLabelText": {
"es": "Personas"
},
"logoUrl": "https://developers.google.com/workspace/add-ons/images/person-icon.png"
}
]
}
}
}
JSON
{
"oauthScopes": [
"https://www.googleapis.com/auth/workspace.linkpreview"
],
"addOns": {
"common": {
"name": "Preview support cases",
"logoUrl": "https://developers.google.com/workspace/add-ons/images/link-icon.png",
"layoutProperties": {
"primaryColor": "#dd4b39"
}
},
"docs": {
"linkPreviewTriggers": [
{
"runFunction": "URL",
"patterns": [
{
"hostPattern": "example.com",
"pathPrefix": "support/cases"
},
{
"hostPattern": "*.example.com",
"pathPrefix": "cases"
},
{
"hostPattern": "cases.example.com"
}
],
"labelText": "Support case",
"localizedLabelText": {
"es": "Caso de soporte"
},
"logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png"
},
{
"runFunction": "URL",
"patterns": [
{
"hostPattern": "example.com",
"pathPrefix": "people"
}
],
"labelText": "People",
"localizedLabelText": {
"es": "Personas"
},
"logoUrl": "https://developers.google.com/workspace/add-ons/images/person-icon.png"
}
]
}
}
}
Код
Скрипт приложений
Node.js
Питон
Джава
Связанные ресурсы
- Протестируйте свою надстройку
- Объекты событий
- Интерфейсы редактора зданий
- Ресурс манифеста редактора