В этом руководстве объясняется, как использовать метод setup
ресурса Space
API Google Chat для настройки пространства Google Chat. При настройке пространства создается пространство и добавляются в него указанные пользователи.
Ресурс Space
представляет собой место, где люди и приложения чата могут отправлять сообщения, обмениваться файлами и сотрудничать. Есть несколько типов помещений:
- Прямые сообщения (DM) — это разговоры между двумя пользователями или пользователем и приложением чата.
- Групповые чаты — это разговоры между тремя или более пользователями и приложениями чата.
- Именованные пространства — это постоянные места, где люди отправляют сообщения, обмениваются файлами и сотрудничают.
При обустройстве помещения учитывайте следующее:
- Вызывающий (аутентифицированный) пользователь автоматически добавляется в спейс, поэтому указывать членство пользователя в запросе не нужно.
- При создании прямого сообщения (DM), если между двумя пользователями существует DM, то DM возвращается. В противном случае создается DM.
- Если при создании группового чата ни одно из участников, указанных в запросе, не было успешно добавлено в групповой чат (например, проблема с разрешениями), может быть создан пустой групповой чат (включающий только вызывающего пользователя).
- Вы не можете создавать группы с цепочками ответов или добавлять людей за пределами вашего Google Workspace.
- Повторяющиеся членства (включая вызывающего пользователя), указанные в запросе, отфильтровываются, а не приводят к ошибке запроса.
Предварительные условия
Питон
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Python 3.6 или выше
- Инструмент управления пакетами pip
- Новейшие клиентские библиотеки Google. Чтобы установить или обновить их, выполните следующую команду в интерфейсе командной строки:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Настройте свою среду:
- Создайте проект Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения Chat.
- Создайте учетные данные идентификатора клиента OAuth для настольного приложения. Чтобы запустить пример из этого руководства, сохраните учетные данные в виде файла JSON (
client_secrets.json
) в локальном каталоге.
- Выберите область авторизации , которая поддерживает аутентификацию пользователей.
Node.js
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Node.js 14 или более поздняя версия
- Инструмент управления пакетами npm
- Новейшие клиентские библиотеки Google. Чтобы установить или обновить их, выполните следующую команду в интерфейсе командной строки:
npm install @google-cloud/local-auth @googleapis/chat
- Настройте свою среду:
- Создайте проект Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения Chat.
- Создайте учетные данные идентификатора клиента OAuth для настольного приложения. Чтобы запустить пример из этого руководства, сохраните учетные данные в виде файла JSON (
client_secrets.json
) в локальном каталоге.
- Выберите область авторизации , которая поддерживает аутентификацию пользователей.
Настроить пространство
Чтобы настроить пространство, передайте в запросе следующее:
- Укажите область авторизации
chat.spaces.create
илиchat.spaces
. - Вызовите метод
setup
на ресурсеSpace
. - Чтобы добавить пользователя-человека в качестве члена пространства, укажите
users/{user}
, где{user}
— это либо{person_id}
дляperson
из API People, либо идентификаторuser
в API каталога. Например, еслиresourceName
person API People —people/123456789
, вы можете добавить пользователя в пространство, включив членство с помощьюusers/123456789
вmember.name
. - Чтобы добавить группу в качестве участника пространства, укажите
groups/{group}
, где{group}
— это идентификатор группы, для которой вы хотите создать членство. Идентификатор группы можно получить с помощью API Cloud Identity . Например, если Cloud Identity API возвращает группу с именемgroups/123456789
, задайтеmembership.groupMember.name
значениеgroups/123456789
. Группы Google нельзя добавить в групповой чат или DM, а только в именованное пространство. - Чтобы создать DM между вызывающим пользователем и другим пользователем-человеком, укажите членство пользователя-человека в своем запросе.
- Чтобы создать DM между вызывающим пользователем и вызывающим приложением, установите для
Space.singleUserBotDm
значениеtrue
и не указывайте членство. Вы можете использовать этот метод только для настройки DM с вызывающим приложением. Чтобы добавить вызывающее приложение в качестве участника пространства или существующего DM между двумя пользователями-людьми, см. создание членства .
В следующем примере создается именованное пространство и создается членство в нем для одной группы и трех пользователей-людей (включая пользователя, прошедшего проверку подлинности, и двух других указанных пользователей).
Питон
- В своем рабочем каталоге создайте файл с
chat_space_setup.py
. Включите следующий код
chat_space_setup.py
: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 sets up a Chat space by creating a space and adding members. ''' # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = chat.spaces().setup( # Details about the space to set up. body = { # Attributes of the space to set up, like space type and display name. 'space': { # To set up a named space, set spaceType to SPACE. 'spaceType': 'SPACE', # The user-visible name of the space 'displayName': 'API-setup' }, # The users and groups to add to the space. # # The authenticated user is automatically added to the space, # and doesn't need to be specified in the memberships array. 'memberships': [ { 'member': { 'name':'users/123456789', 'type': 'HUMAN' } }, { 'member': { 'name':'users/987654321', 'type': 'HUMAN' } }, { 'groupMember': { 'name': 'groups/11223344' } } ] } ).execute() # Prints details about the created space. print(result) if __name__ == '__main__': main()
В своем рабочем каталоге соберите и запустите пример:
python3 chat_space_setup.py
Node.js
- В своем рабочем каталоге создайте файл с именем
setup-space.js
. Включите следующий код в
setup-space.js
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Sets up a new Chat space with users. * @return {!Promise<!Object>} */ async function setupSpace() { const scopes = [ 'https://www.googleapis.com/auth/chat.spaces.create', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.setup({ requestBody: { space: { spaceType: 'SPACE', displayName: 'API-made', }, memberships: [ {member: {name: 'users/123456789', type: 'HUMAN'}}, {member: {name: 'users/987654321', type: 'HUMAN'}}, {groupMember: {name: 'groups/11223344'}}, ] } }); } setupSpace().then(console.log);
В своем рабочем каталоге запустите образец:
node setup-space.js
Настроено именованное пространство чата с одной группой и тремя пользователями-людьми, включая аутентифицированного пользователя.
Чтобы перейти в пространство, используйте идентификатор ресурса пространства для создания URL-адреса пространства. Идентификатор ресурса можно получить из name
пространства в теле ответа Google Chat. Например, если name
вашей темы — spaces/1234567
, вы можете перейти в нее по следующему URL-адресу: https://mail.google.com/chat/u/0/#chat/space/1234567
.
Связанные темы
- Создайте пространство .
- Получите подробную информацию о помещении .
- Перечислите пространства .
- Обновите пространство .
- Удалить пробел .
- Найдите место для прямых сообщений .
- Сделайте пространство доступным для просмотра определенным пользователям .