В этом руководстве объясняется, как использовать OAuth 2.0 с учетными данными Google пользователей для доступа к API чата . Аутентификация и авторизация с использованием учетных данных пользователя позволяют приложениям чата получать доступ к данным пользователя и выполнять операции от имени аутентифицированного пользователя. Аутентифицируясь от имени пользователя, приложение получает те же разрешения, что и этот пользователь, и может выполнять действия так, как если бы они выполнялись им самим.
После аутентификации и авторизации вызова API с использованием учетных данных пользователя, приложения чата могут выполнять следующие действия:
- Создавайте чаты.
- Добавляйте пользователей в чаты и групповые беседы.
- Работайте с пользовательскими данными в других API рабочей области, например, в следующих:
- Создавайте события в Google Календаре.
- Записывайте данные в Google Таблицы.
- Отправьте электронное письмо через Gmail.
Когда приложение выполняет действие с аутентификацией пользователя (например, создание пространства), Google Chat отображает сообщение с указанием источника, в котором сообщается название приложения, выполнившего действие для пользователя, который его авторизовал.


Чтобы узнать больше о том, когда приложениям чата требуется аутентификация и какой тип аутентификации следует использовать, см. раздел «Типы необходимой аутентификации» в обзоре аутентификации и авторизации API чата.
Пройдите аутентификацию и авторизацию в качестве администратора Google Workspace.
В этом разделе объясняется, как администраторы рабочих пространств Google Workspace могут управлять приложениями и пространствами Google Chat в масштабах всей организации с помощью аутентификации пользователей.
Аутентификация и авторизация с использованием делегирования в масштабе всего домена.
Если вы являетесь администратором домена, вы можете предоставить делегирование полномочий на уровне домена , чтобы разрешить учетной записи службы приложения доступ к данным ваших пользователей без необходимости получения согласия от каждого пользователя. После настройки делегирования на уровне домена учетная запись службы может выдавать себя за учетную запись пользователя . Хотя для аутентификации используется учетная запись службы, делегирование на уровне домена выдает себя за пользователя и, следовательно, считается аутентификацией пользователя . Для любой функциональности, требующей аутентификации пользователя, можно использовать делегирование на уровне домена.
Аутентификация и авторизация с использованием прав администратора.
Если вы являетесь администратором домена или делегированным администратором с правами администратора , вы можете аутентифицировать и авторизовать свои вызовы к API Google Chat с правами администратора, установив поле useAdminAccess в запросах соответствующих методов. Для получения дополнительной информации см. справочную документацию по API .
Обратите внимание, что когда приложение Google Chat выполняет действие с правами администратора, Chat не сообщает пользователям название приложения, выполнившего действие, или имя администратора, который его авторизовал, а лишь сообщает, что действие выполнено администратором их организации.
Предварительные требования
Java
- Корпоративный аккаунт Google Workspace с доступом к Google Chat .
- Создайте проект в Google Cloud .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения чата.
- JDK 1.7 или выше
- Инструмент управления пакетами Maven
- Инициализированный проект Maven. Для инициализации нового проекта выполните следующую команду в командной строке:
mvn archetype:generate -DgroupId=com.google.chat.app.authsample -DartifactId=auth-sample-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Python
- Корпоративный аккаунт Google Workspace с доступом к Google Chat .
- Создайте проект в Google Cloud .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения чата.
- Python 3.6 или выше
- Инструмент управления пакетами pip
Node.js
- Корпоративный аккаунт Google Workspace с доступом к Google Chat .
- Создайте проект в Google Cloud .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения чата.
- Node.js 14 или выше
- Инструмент управления пакетами npm
- Инициализированный проект Node.js. Чтобы инициализировать новый проект, создайте новую папку, перейдите в неё и выполните следующую команду в командной строке:
npm init
Apps Script
- Корпоративный аккаунт Google Workspace с доступом к Google Chat .
- Создайте проект в Google Cloud .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения чата.
- Создайте автономный проект Apps Script и включите расширенную службу чата .
Шаг 1: Настройте экран согласия OAuth, укажите области действия и зарегистрируйте свое приложение.
При использовании OAuth 2.0 для авторизации Google отображает пользователю экран согласия, содержащий краткое описание вашего проекта, его политики и запрашиваемые области авторизации. Настройка экрана согласия OAuth для вашего приложения определяет, что Google отображает пользователям и рецензентам приложения, а также регистрирует ваше приложение, чтобы вы могли опубликовать его позже.
Для всех приложений, использующих OAuth 2.0, требуется настройка экрана согласия, но вам нужно указать области действия только для приложений, используемых пользователями за пределами вашей организации Google Workspace.
В консоли Google Cloud перейдите в >Google Auth platform > Брендинг .
Если вы уже настроилиGoogle Auth platformВы можете настроить следующие параметры экрана согласия OAuth в разделах «Брендинг» , «Аудитория» и «Доступ к данным» . Если вы видите сообщение, в котором говорится... Google Auth platform Если конфигурация еще не выполнена , нажмите «Начать» :
- В разделе «Информация о приложении» , в поле «Название приложения» , введите название приложения .
- В разделе «Электронная почта службы поддержки пользователей» выберите адрес электронной почты, по которому пользователи смогут связаться с вами, если у них возникнут вопросы относительно их согласия.
- Нажмите «Далее» .
- В разделе «Аудитория» выберите «Внутренняя» . Если выбрать «Внутренняя» невозможно, выберите «Внешняя» .
- Нажмите «Далее» .
- В поле «Контактная информация» укажите адрес электронной почты , на который вы сможете получать уведомления об изменениях в вашем проекте.
- Нажмите «Далее» .
- В разделе «Завершить» ознакомьтесь с Политикой использования пользовательских данных сервисов Google API и, если вы согласны, выберите «Я согласен с Политикой использования пользовательских данных сервисов Google API» .
- Нажмите «Продолжить» .
- Нажмите «Создать» .
- Если для типа пользователя выбран «Внешний» , добавьте тестовых пользователей:
- Нажмите «Аудитория» .
- В разделе «Проверка пользователей» нажмите «Добавить пользователей» .
- Введите свой адрес электронной почты и имена других авторизованных пользователей, участвующих в тестировании, затем нажмите «Сохранить» .
Нажмите «Доступ к данным» > «Добавить или удалить области действия ». Откроется панель со списком областей действия для каждого API, который вы включили в своем проекте Google Cloud.
- В разделе «Добавить области действия вручную» вставьте
https://www.googleapis.com/auth/chat.spaces.create, это необходимо для запуска примера аутентификации в этом руководстве. Чтобы просмотреть доступные области действия для Chat API, см. раздел «Области действия Chat API» в обзоре аутентификации. - Нажмите «Добавить в таблицу» .
- Нажмите «Обновить» .
- После выбора областей доступа, необходимых для вашего приложения, на странице «Доступ к данным» нажмите «Сохранить» .
- В разделе «Добавить области действия вручную» вставьте
Шаг 2: Создайте учетные данные клиента OAuth в консоли Google Cloud.
Для аутентификации в качестве конечного пользователя и доступа к пользовательским данным в вашем приложении необходимо создать один или несколько идентификаторов клиента OAuth 2.0 . Идентификатор клиента используется для идентификации отдельного приложения на серверах OAuth Google. Если ваше приложение работает на нескольких платформах — например, Android, iOS и Web — вам необходимо создать отдельный идентификатор клиента для каждой платформы.
Создание учетных данных клиента OAuth
Выберите тип вашего приложения , чтобы получить подробные инструкции по созданию идентификатора клиента OAuth:
Веб-приложение
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Выберите «Тип приложения» > «Веб-приложение» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- Добавьте авторизованные URI, связанные с вашим приложением:
- Клиентские приложения (JavaScript) – В разделе «Авторизованные источники JavaScript» нажмите «Добавить URI» . Затем введите URI, который будет использоваться для запросов браузера. Это определяет домены, с которых ваше приложение может отправлять API-запросы на сервер OAuth 2.0.
- Для серверных приложений (Java, Python и другие) — в разделе «Авторизованные URI перенаправления» нажмите «Добавить URI» . Затем введите URI конечной точки, на которую сервер OAuth 2.0 сможет отправлять ответы.
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе «Идентификаторы клиентов OAuth 2.0» .
Обратите внимание на идентификатор клиента (Client ID). Секретные ключи клиента не используются в веб-приложениях.
Android
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Нажмите «Тип приложения» > «Android» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- В поле "Имя пакета" введите имя пакета из файла
AndroidManifest.xml. - В поле "Отпечаток сертификата SHA-1" введите сгенерированный отпечаток сертификата SHA-1 .
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
iOS
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Нажмите «Тип приложения» > «iOS» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- В поле "Идентификатор пакета" введите идентификатор пакета, указанный в файле
Info.plistприложения. - Необязательно: если ваше приложение отображается в Apple App Store, введите идентификатор приложения в App Store.
- Необязательно: в поле «Идентификатор команды» введите уникальную 10-символьную строку, сгенерированную Apple и присвоенную вашей команде.
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
приложение Chrome
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Нажмите «Тип приложения» > «Расширение Chrome» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- В поле «Идентификатор элемента» введите уникальный 32-символьный идентификатор вашего приложения. Этот идентификатор можно найти в URL-адресе вашего приложения в Chrome Web Store и в панели разработчика Chrome Web Store .
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
Настольное приложение
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Выберите «Тип приложения» > «Настольное приложение» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
Телевизоры и устройства с ограниченным набором входных сигналов
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Нажмите «Тип приложения» > «Телевизоры и устройства ввода с ограниченным набором параметров» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
Универсальная платформа Windows (UWP)
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Щелкните Тип приложения > Универсальная платформа Windows (UWP) .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- В поле «Идентификатор магазина» введите уникальный 12-символьный идентификатор вашего приложения в Microsoft Store. Этот идентификатор можно найти в URL-адресе вашего приложения в Microsoft Store и в Центре партнеров .
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
Загрузите JSON-файл с секретным ключом клиента.
Файл с секретными данными клиента представляет собой JSON-представление учетных данных OAuth-клиента, на которые ваше приложение чата может ссылаться при предоставлении учетных данных.
В консоли Google Cloud перейдите в > API и сервисы > Учетные данные .
В разделе «Идентификаторы клиентов OAuth 2.0» щелкните созданный вами идентификатор клиента.
Нажмите «Скачать JSON» .
Сохраните файл как
credentials.json.
Шаг 3: Установите клиентскую библиотеку Google и другие зависимости.
Установите клиентскую библиотеку Google и другие зависимости, необходимые для проекта.
Java
Чтобы добавить клиентские библиотеки Google и другие необходимые зависимости в ваш проект Maven, отредактируйте файл pom.xml в каталоге вашего проекта и добавьте следующие зависимости:
<dependencies>
<!-- ... existing dependencies ... -->
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-chat</artifactId>
<version>v1-rev20230905-2.0.0</version>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-oauth2-http</artifactId>
<version>1.19.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.34.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
</dependencies>
Python
Если вы еще не установили клиентские библиотеки Google для Python, выполните следующую команду в командной строке:
pip3 install --upgrade google-api-python-client google-auth-oauthlibNode.js
Чтобы добавить клиентские библиотеки Google и другие необходимые зависимости в ваш проект Node.js, перейдите в каталог вашего проекта и выполните следующую команду в командной строке:
npm install "@googleapis/chat" open server-destroyApps Script
В этом примере используется служба Advanced Chat для вызова API Google Chat. Чтобы включить эту службу для вашего проекта Apps Script:
- Слева нажмите «Редактор .
- Слева, рядом с пунктом «Услуги» , нажмите « услугу» .
- Выберите Google Chat API .
- В поле «Версия» выберите v1 .
- Нажмите «Добавить» .
Вы можете использовать любой язык, поддерживаемый нашими клиентскими библиотеками .
Шаг 4: Напишите скрипт, который вызывает API чата.
Вызов API с авторизацией OAuth — это многоэтапный процесс. В веб- или настольных приложениях этот процесс обычно выглядит следующим образом:
- Приложение перенаправляет пользователя на страницу авторизации, запрашивающую доступ к пользовательским данным, указанным в рамках предоставленных прав доступа. Приложение идентифицирует себя с помощью учетных данных клиента.
- Пользователь проверяет запрашиваемые приложением разрешения и одобряет запрос.
- Сервер аутентификации Google перенаправляет браузер на HTTP-адрес приложения вместе с кодом авторизации.
- Приложение отправляет еще один запрос на сервер авторизации Google для обмена кода авторизации на токен доступа.
- Приложение использует токен доступа для вызова API от имени пользователя.
Чтобы узнать больше о процессе авторизации OAuth, см. руководство «Использование OAuth 2.0 для доступа к API Google» .
Приведенные ниже примеры кода на Java, Python и Node.js используют клиентскую библиотеку для выполнения процесса авторизации OAuth. Она открывает локальный HTTP-сервер для получения кода авторизации от сервера авторизации, который затем обменивает на токен доступа. В примере кода на Apps Script этот процесс авторизации обрабатывается Apps Script.
После завершения процесса аутентификации скрипт выполняет аутентификацию в API чата, используя токен доступа пользователя, а затем создает пространство.
Java
- В директории вашего проекта откройте файл
src/main/java/com/google/chat/app/authsample/App.java. Замените содержимое файла
App.javaследующим кодом:package com.google.chat.app.authsample; import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.services.chat.v1.HangoutsChat; import com.google.api.services.chat.v1.model.Space; import java.io.InputStreamReader; import java.util.Collection; import java.util.Collections; /** * Authenticates with Chat API via user credentials, then creates a Chat space. */ public class App { // Application OAuth credentials. private static final String KEYS_RESOURCE_URI = "/credentials.json"; // Define your app's authorization scopes. private static final Collection<String> SCOPES = Collections.singleton("https://www.googleapis.com/auth/chat.spaces.create"); // Directory to store user credentials. private static final java.io.File DATA_STORE_DIR = new java.io.File(System.getProperty("user.home"), ".store/auth-sample-app"); // Global instance of the JSON factory. private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); // Global instance of the HTTP transport. private static HttpTransport httpTransport; // Global instance of the DataStoreFactory. The best practice is to make it a single // globally shared instance across your application. private static FileDataStoreFactory dataStoreFactory; public static void main( String[] args ) { try { // Run app. httpTransport = GoogleNetHttpTransport.newTrustedTransport(); dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR); Credential userCredential = authorize(); Space response = App.createChatSpace(userCredential); // Print details about the created space. System.out.println(response); } catch (Exception e) { e.printStackTrace(); } } /** * Authorizes the installed application to access user's protected data. */ private static Credential authorize() throws Exception { // Load client secrets. GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(App.class.getResourceAsStream("/credentials.json"))); // Set up authorization code flow. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( httpTransport, JSON_FACTORY, clientSecrets, SCOPES) .setDataStoreFactory(dataStoreFactory) .build(); // Authorize. return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); } /** * Creates a Chat space. */ private static Space createChatSpace(Credential userCredential) throws Exception { // Build the Chat API client and authenticate with the user account. HangoutsChat chatService = new HangoutsChat.Builder( httpTransport, JSON_FACTORY, userCredential) .setApplicationName("auth-sample-app") .build(); // Create a Chat space. Space space = new Space() // To create a named space, set spaceType to SPACE. .setSpaceType("SPACE") // The user-visible name of the space. .setDisplayName("API-made"); return chatService.spaces().create(space).execute(); } }Создайте новую подпапку с именем
resourcesв каталоге вашего проекта.Скопируйте файл
credentials.jsonв подкаталогresources.Чтобы настроить Maven для включения файла с секретами клиента в пакет проекта, отредактируйте файл
pom.xmlв каталоге вашего проекта и добавьте следующую конфигурацию в раздел<build>:<build> <!-- ... existing configurations ... --> <resources> <resource> <directory>resources</directory> </resource> </resources> </build>Чтобы настроить Maven для включения зависимостей из пакета проекта и выполнения основного класса вашего приложения, отредактируйте файл
pom.xmlв каталоге вашего проекта и добавьте следующую конфигурацию в раздел<plugins>:<plugins> <!-- ... existing configurations ... --> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.google.chat.app.authsample.App</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins>
Python
Сохраните следующий код в файл с именем
chat_space_create_named.pyв той же директории, где находитсяcredentials.json:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.spaces.create"] def main(): ''' Authenticates with Chat API via user credentials, then creates a Chat space. ''' flow = InstalledAppFlow.from_client_secrets_file( 'credentials.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. service = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = service.spaces().create( # Details about the space to create. body = { # To create a named space, set spaceType to SPACE. 'spaceType': 'SPACE', # The user-visible name of the space. 'displayName': 'API-made' } ).execute() # Prints details about the created space. print(result) if __name__ == '__main__': main()
Node.js
Сохраните следующий код в файл с именем
chat_space_create_named.jsв той же директории, где находятся проект Node.js иcredentials.json:const fs = require('fs'); const path = require('path'); const http = require('http'); const url = require('url'); const destroyer = require('server-destroy'); const chat = require('@googleapis/chat'); // Application OAuth credentials. const keys = require('./credentials.json').installed; // Define your app's authorization scopes. // When modifying these scopes, delete the file token.json, if it exists. const scopes = ["https://www.googleapis.com/auth/chat.spaces.create"]; // Create a new OAuth2 client with the configured keys. const oauth2Client = new chat.auth.OAuth2( keys.client_id, keys.client_secret, 'http://localhost:3000' ); /** * Opens an HTTP server to accept the OAuth callback. * In this simple example, the only request to our webserver is to /?code=<code>. */ async function authenticate(scopes) { const opn = (await import('open')).default; return new Promise((resolve, reject) => { // Generate the URL for authorization. const authorizeUrl = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: scopes.join(' '), }); // Start the HTTP server to listen for the callback. const server = http .createServer(async (req, res) => { try { const qs = new url.URL(req.url, 'http://localhost:3000').searchParams; res.end('Authentication successful! Please return to the console.'); server.destroy(); const { tokens } = await oauth2Client.getToken(qs.get('code')); oauth2Client.credentials = tokens; resolve(oauth2Client); } catch (e) { reject(e); } }) .listen(3000, () => { // Open the browser to the authorize URL to start the workflow. opn(authorizeUrl, { wait: false }).then(cp => cp.unref()); }); destroyer(server); }); } /** * Authenticates with Chat API via user credentials, then creates a Chat space. */ async function createSpace() { // Create the Chat API client and authenticate with the authorized user. const chatClient = await chat.chat({ version: 'v1', auth: oauth2Client }); // Call the Chat API to create a space. const result = await chatClient.spaces.create({ // Details about the space to create. requestBody: { // To create a named space, set spaceType to SPACE. 'spaceType': 'SPACE', // The user-visible name of the space. 'displayName': 'API-made' } }); return result; } // Authenticate the user, execute the function, // then print details about the created space. authenticate(scopes) .then(createSpace) .then(console.log);
Apps Script
В редакторе Apps Script отредактируйте файл
appsscript.jsonи добавьте область действия OAuth, необходимую для вызова API:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.create" ]Сохраните следующий код в файле с именем
ChatSpaceCreateNamed.gsв вашем проекте Apps Script:/** * Authenticates with Chat API via user credentials, then creates a * Chat space. */ function createSpace() { try { // Details about the space to create. // To create a named space, set spaceType to SPACE. // The user-visible name of the space is displayName. const space = {'displayName': 'API-made', 'spaceType': 'SPACE'}; // Call Chat API with user credentials to create the space. const result = Chat.Spaces.create(space); // Log details about the created space. console.log(result); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to create space with error %s', err.message); } }
Шаг 5: Запустите пример скрипта.
Чтобы запустить пример, перейдите в командной строке в каталог, содержащий файлы вашего проекта, а затем выполните следующую команду:
Java
mvn compile assembly:singlejava -jar target/auth-sample-app-1.0-SNAPSHOT-jar-with-dependencies.jar
Python
python3 chat_space_create_named.pyNode.js
node chat_space_create_named.jsApps Script
Откройте файл ChatSpaceCreateNamed.gs в редакторе Apps Script и нажмите «Запустить» .
Открывается окно браузера, предлагающее войти в свой аккаунт Google:

После входа в систему появляется экран согласия OAuth, на котором вам предлагается предоставить приложению разрешение.
После предоставления вами разрешения скрипт вызывает API чата , который в ответ создает пространство чата с отображаемым именем API-made . В консоли отображаются подробности вызова API. Чтобы найти пространство, перейдите на панель «Пространства» в Google Chat.
Устранение неполадок в примере
При запуске chat_space_create_named.py может появиться ошибка следующего содержания:
Expected a JSON object with a single property for a "web" or "installed" application
Это сообщение об ошибке означает, что файл credentials.json , который вы загрузили из консоли Google Cloud, не начинается со свойств "web" или "installed" . После аутентификации с использованием загруженного файла, если ваш код не сохраняет токен доступа в новом файле, например, token.json , то токен доступа записывается в credentials.json , что может вызвать эту ошибку при последующих попытках авторизации.
Для устранения ошибки повторно загрузите файл с секретным ключом клиента из консоли Google Cloud и сохраните новый файл на месте текущего файла.
Связанные темы
Если вашему приложению необходимо продолжать использовать пользовательские токены вне рамок одного потока, оно может сохранить токены для повторного использования. В этом случае вашему приложению необходимо безопасно обрабатывать пользовательские токены, а также обрабатывать отзыв и истечение срока действия токенов обновления. Для получения дополнительной информации см. Руководство по использованию лучших практик OAuth 2.0 и пример приложения для авторизации пользователей:
- Пример приложения для авторизации пользователей на Java.
- Пример приложения для авторизации пользователей на Python.
- Пример приложения для авторизации пользователей на Node.js
- Интеграция Apps Script с Google Chat автоматически обрабатывает пользовательские токены. Для получения дополнительной информации см. раздел «Расширенные возможности чата» . Если вы добавите необходимые области действия OAuth в файл
appsscript.jsonдля интерактивного приложения чата, интеграция Apps Script автоматически безопасно и прозрачно сохранит пользовательские токены и повторно использует их при следующем вызове скриптом API чата для того же пользователя.
Для управления детализированными разрешениями OAuth см. раздел «Управление детализированными разрешениями OAuth для приложений Google Chat» .
Узнайте о других возможностях Chat API, ознакомившись с документацией по Chat API .