В этом руководстве объясняется, как использовать метод create
на ресурсе membership
API Google Chat, чтобы пригласить или добавить пользователя, группу Google или приложение чата в пространство, также известное как создание членства. Если при создании членства у указанного участника отключена политика автоматического принятия, он будет приглашен и должен принять приглашение в пространство, прежде чем присоединиться. В противном случае при создании членства участник добавляется непосредственно в указанное пространство.
Ресурс Membership
указывает, приглашен ли пользователь или приложение Google Chat в пространство, участвует в нем или отсутствует в нем.
Предварительные условия
Питон
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Настройте свою среду:
- Создайте проект Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения Chat.
- Создайте учетные данные идентификатора клиента OAuth для настольного приложения. Чтобы запустить пример из этого руководства, сохраните учетные данные в виде файла JSON с именем
client_secrets.json
в локальном каталоге.
- Выберите область авторизации , которая поддерживает аутентификацию пользователей.
Node.js
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Настройте свою среду:
- Создайте проект Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения Chat.
- Создайте учетные данные идентификатора клиента OAuth для настольного приложения. Чтобы запустить пример из этого руководства, сохраните учетные данные в виде файла JSON с именем
client_secrets.json
в локальном каталоге.
- Выберите область авторизации , которая поддерживает аутентификацию пользователей.
Пригласить или добавить пользователя в пространство
Чтобы пригласить или добавить пользователя в пространство, передайте в запросе следующее:
- Укажите область авторизации
chat.memberships
. - Вызовите метод
create
для ресурсаmembership
. - Задайте для
parent
имя ресурса пространства, в котором необходимо создать членство. - Установите для
member
users/{user}
где{user}
— это человек, для которого вы хотите создать членство, и может быть:- Идентификатор человека в People API. Например, если
resourceName
Person API People —people/123456789
, задайтеmembership.member.name
users/123456789
. - Идентификатор пользователя в API каталога.
- Адрес электронной почты пользователя. Например,
users/222larabrown@gmail.com
илиusers/larabrown@cymbalgroup.com
. Если пользователь использует учетную запись Google или принадлежит к другой организации Google Workspace, вы должны использовать его адрес электронной почты.
- Идентификатор человека в People API. Например, если
В следующем примере пользователь добавляется в пространство:
Питон
- В своем рабочем каталоге создайте файл с
chat_membership_user_create.py
. Включите следующий код в
chat_membership_user_create.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.memberships"] def main(): ''' Authenticates with Chat API via user credentials, then adds a user to a Chat space by creating a membership. ''' # 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().members().create( # The space in which to create a membership. parent = 'spaces/SPACE', # Specify which user the membership is for. body = { 'member': { 'name':'users/USER', 'type': 'HUMAN' } } ).execute() # Prints details about the created membership. print(result) if __name__ == '__main__': main()
В коде замените следующее:
SPACE
: имя пространства, которое можно получить с помощью методаspaces.list
в Chat API или из URL-адреса пространства.USER
: идентификатор пользователя.
В своем рабочем каталоге соберите и запустите пример:
python3 chat_membership_user_create.py
Node.js
- В своем рабочем каталоге создайте файл с именем
add-user-to-space.js
. Включите следующий код в
add-user-to-space.js
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Adds the user to the Chat space. * @return {!Promise<!Object>} */ async function addUserToSpace() { const scopes = [ 'https://www.googleapis.com/auth/chat.memberships', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.members.create({ parent: 'spaces/SPACE', requestBody: {member: {name: 'users/USER', type: 'HUMAN'}} }); } addUserToSpace().then(console.log);
В коде замените следующее:
SPACE
: имя пространства, которое можно получить с помощью методаspaces.list
в Chat API или из URL-адреса пространства.USER
: идентификатор пользователя.
В своем рабочем каталоге запустите образец:
node add-user-to-space.js
API чата возвращает экземпляр membership
, в котором подробно описано созданное членство пользователя.
Пригласите или добавьте группу Google в пространство
Чтобы пригласить или добавить группу Google в пространство, передайте в запросе следующее:
- Укажите область авторизации
chat.memberships
. - Вызовите метод
create
для ресурсаmembership
. - Задайте для
parent
имя ресурса пространства, в котором необходимо создать членство. - Задайте для параметра
groupMember
значениеgroups/{group}
где{group}
— это идентификатор группы, для которой вы хотите создать членство. Идентификатор группы можно получить с помощью API Cloud Identity . Например, если Cloud Identity API возвращает группу с именемgroups/123456789
, задайтеmembership.groupMember.name
значениеgroups/123456789
.
Группы Google нельзя добавить в групповой чат или прямое сообщение, а только в именованное пространство. В следующем примере группа добавляется в именованное пространство:
Питон
- В своем рабочем каталоге создайте файл с
chat_membership_group_create.py
. Включите следующий код в
chat_membership_group_create.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.memberships"] def main(): ''' Authenticates with Chat API via user credentials, then adds a group to a Chat space by creating a membership. ''' # 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().members().create( # The named space in which to create a membership. parent = 'spaces/SPACE', # Specify which group the membership is for. body = { 'groupMember': { 'name':'groups/GROUP', } } ).execute() # Prints details about the created membership. print(result) if __name__ == '__main__': main()
В коде замените следующее:
SPACE
: имя пространства, которое можно получить с помощью методаspaces.list
в Chat API или из URL-адреса пространства.GROUP
: идентификатор группы.
В своем рабочем каталоге соберите и запустите пример:
python3 chat_membership_group_create.py
Node.js
- В своем рабочем каталоге создайте файл с именем
add-group-to-space.js
. Включите следующий код в
add-group-to-space.js
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Adds the group to the Chat space. * @return {!Promise<!Object>} */ async function addUserToSpace() { const scopes = [ 'https://www.googleapis.com/auth/chat.memberships', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.members.create({ parent: 'spaces/SPACE', requestBody: {groupMember: {name: 'groups/GROUP'}} }); } addUserToSpace().then(console.log);
В коде замените следующее:
SPACE
: имя пространства, которое можно получить с помощью методаspaces.list
в Chat API или из URL-адреса пространства.GROUP
: идентификатор группы.
В своем рабочем каталоге запустите образец:
node add-group-to-space.js
API чата возвращает экземпляр membership
, в котором подробно описано членство в созданной группе.
Добавьте приложение Chat в пространство
Приложение чата не может добавить другое приложение в качестве участника в пространство. Чтобы добавить приложение чата в пространство или прямое сообщение между двумя пользователями-людьми, передайте в своем запросе следующее:
- Укажите область авторизации
chat.memberships.app
. - Вызовите метод
create
для ресурсаmembership
. - Задайте для
parent
имя ресурса пространства, в котором необходимо создать членство. - Установить
member
вusers/app
; псевдоним, представляющий приложение, вызывающее API чата.
В следующем примере приложение Chat добавляется в пространство:
Питон
- В своем рабочем каталоге создайте файл с
chat_membership_app_create.py
. Включите следующий код в
chat_membership_app_create.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.memberships.app"] def main(): ''' Authenticates with Chat API via user credentials, then adds the Chat app to a Chat space. ''' # 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().members().create( # The space in which to create a membership. parent = 'spaces/SPACE', # Set the Chat app as the entity that gets added to the space. # 'app' is an alias for the Chat app calling the API. body = { 'member': { 'name':'users/app', 'type': 'BOT' } } ).execute() # Prints details about the created membership. print(result) if __name__ == '__main__': main()
В коде замените
SPACE
именем пространства, которое можно получить с помощью методаspaces.list
в Chat API или из URL-адреса пространства.В своем рабочем каталоге соберите и запустите пример:
python3 chat_membership_app_create.py
Node.js
- В своем рабочем каталоге создайте файл с именем
add-app-to-space.js
. Включите следующий код в
add-app-to-space.js
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Adds the app to the Chat space. * @return {!Promise<!Object>} */ async function addAppToSpace() { const scopes = [ 'https://www.googleapis.com/auth/chat.memberships.app', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.members.create({ parent: 'spaces/SPACE', requestBody: {member: {name: 'users/app', type: 'BOT'}} }); } addAppToSpace().then(console.log);
В коде замените
SPACE
именем пространства, которое можно получить с помощью методаspaces.list
в Chat API или из URL-адреса пространства.В своем рабочем каталоге запустите образец:
node add-app-to-space.js
API чата возвращает экземпляр membership
, в котором подробно описывается созданное членство в приложении.
Связанные темы
- Получите подробную информацию о членстве пользователя или приложения Chat .
- Список участников в пространстве .
- Обновите членство пользователя в чате Google .
- Удаление пользователя или приложения Chat из пространства .