Служба Advanced Chat позволяет использовать API Google Chat в Apps Script. Этот API позволяет скриптам находить, создавать и изменять чат-группы, добавлять и удалять участников, а также читать и публиковать сообщения с текстом, карточками, вложениями и реакциями.
Предпосылки
- Приложение Apps Script для Google Chat, настроенное на странице конфигурации Chat API в консоли Google Cloud. Проект Apps Script приложения должен использовать стандартный проект Google Cloud вместо проекта по умолчанию, создаваемого автоматически для проектов Apps Script. Чтобы создать совместимое приложение Google Chat, см. статью Создание приложения Google Chat с помощью Google Apps Script .
- Аутентификация настроена для приложения Chat. Выполнение действия от имени пользователя требует аутентификации пользователя . Выполнение действия от имени приложения Chat требует аутентификации приложения с использованием учётной записи службы . Чтобы узнать, какую форму аутентификации поддерживает метод API Chat, см. раздел Типы требуемой аутентификации для вызовов API Google Chat .
Ссылка
Подробнее об этой службе см. в справочной документации по API чата . Как и все расширенные службы в Apps Script, служба чата использует те же объекты, методы и параметры, что и общедоступный API.
Пример кода
В этих примерах показано, как выполнять общие действия API Google Chat с использованием расширенного сервиса.
Опубликовать сообщение с учетными данными пользователя
В следующем примере показано, как опубликовать сообщение в чате от имени пользователя.
Добавьте область авторизации
chat.messages.createв файлappsscript.jsonпроекта Apps Script:"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.create" ]Добавьте в код проекта Apps Script такую функцию:
Опубликовать сообщение с учетными данными приложения
В следующем примере показано, как отправить сообщение в чат-группу от имени приложения. Использование расширенного сервиса чата с учётной записью сервиса не требует указания областей авторизации в файле appsscript.json . Подробнее об аутентификации с использованием учётных записей сервисов см. в разделе «Аутентификация в качестве приложения Google Chat» .
Получить место
В следующем примере показано, как получить информацию о чат-пространстве.
Добавьте область авторизации
chat.spaces.readonlyв файлappsscript.jsonпроекта Apps Script:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.readonly" ]Добавьте в код проекта Apps Script такую функцию:
Создать пространство
В следующем примере показано, как создать чат-пространство.
Добавьте область авторизации
chat.spaces.createв файлappsscript.jsonпроекта Apps Script:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.create" ]Добавьте в код проекта Apps Script такую функцию:
Список членств
В следующем примере показано, как составить список всех участников чат-пространства.
Добавьте область авторизации
chat.memberships.readonlyв файлappsscript.jsonпроекта Apps Script:"oauthScopes": [ "https://www.googleapis.com/auth/chat.memberships.readonly" ]Добавьте в код проекта Apps Script такую функцию:
Устранение неполадок
Если вы столкнулись с Error 400: invalid_scope и сообщением « Some requested scopes cannot be shown , это означает, что вы не указали области авторизации в файле appsscript.json проекта Apps Script. В большинстве случаев Apps Script автоматически определяет необходимые скрипту области, но при использовании расширенного сервиса Chat необходимо вручную добавить области авторизации, используемые вашим скриптом, в файл манифеста проекта Apps Script. См. раздел Настройка явных областей .
Чтобы устранить ошибку, добавьте соответствующие области авторизации в файл appsscript.json проекта Apps Script в массив oauthScopes . Например, для вызова метода spaces.messages.create добавьте следующее:
"oauthScopes": [
"https://www.googleapis.com/auth/chat.messages.create"
]
Ограничения и соображения
Служба расширенного чата не поддерживает:
- Метод API чата
media.download. - Методы API чата доступны в версии Developer Preview
Чтобы загрузить вложение к сообщению или вызвать метод предварительного просмотра для разработчиков, используйте вместо этого UrlFetchApp .