В этом руководстве объясняется, как использовать метод update() ресурса Membership в Google Chat API для изменения атрибутов членства, например, для преобразования участника пространства в менеджера пространства или владельца пространства.
Если вы являетесь администратором Google Workspace, вы можете вызвать метод update() для обновления членства в любом пространстве вашей организации Google Workspace.
Ресурс Membership показывает, приглашен ли пользователь (человек или приложение Google Chat) в данное пространство, является ли он его частью или отсутствует.
Предварительные требования
Node.js
- Корпоративный аккаунт Google Workspace с доступом к Google Chat .
- Настройте свою среду:
- Создайте проект в Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения чата.
- Установите библиотеку Node.js Cloud Client .
- Создайте учетные данные доступа в зависимости от того, как вы хотите проходить аутентификацию в запросе к Google Chat API:
- Для аутентификации в качестве пользователя чата создайте учетные данные OAuth-клиента и сохраните их в виде JSON-файла с именем
credentials.jsonв локальной директории. - Для аутентификации в приложении «Чат» создайте учетные данные сервисной учетной записи и сохраните их в JSON-файле с именем
credentials.json.
- Для аутентификации в качестве пользователя чата создайте учетные данные OAuth-клиента и сохраните их в виде JSON-файла с именем
- Выберите область авторизации в зависимости от того, хотите ли вы аутентифицироваться как пользователь или как приложение чата.
Обновить данные участника
Для обновления членства в пространстве укажите в запросе следующее:
- Укажите область действия полномочий:
- При аутентификации пользователя укажите область авторизации
chat.memberships. - При использовании аутентификации приложения укажите область авторизации
chat.app.memberships. При обновлении членства с помощью аутентификации приложения вы можете обновлять членство только в пространствах, созданных приложениями чата. Аутентификация приложения требует однократного подтверждения администратора .
- При аутентификации пользователя укажите область авторизации
- Вызовите метод
UpdateMembership(). - Пройдите
membershipв качестве участника программыMembershipсо следующими характеристиками:- Поле
nameпредназначено для обновления данных о членстве, включая идентификатор помещения и идентификатор участника. - Поля членства, подлежащие обновлению, заданы новыми значениями.
- Поле
- Передайте
updateMask, чтобы указать аспекты членства, которые необходимо обновить; он включает в себя следующее:-
role: Роль пользователя в чате, определяющая разрешенные ему действия в этом пространстве. Подробное описание разрешений см. в разделеMembershipRoleв справочной документации по API чата. Возможные значения:-
ROLE_MEMBER: Участник пространства. В пользовательском интерфейсе чата эта роль называется Member . -
ROLE_ASSISTANT_MANAGER: Менеджер пространства. В пользовательском интерфейсе чата эта роль называется Manager . -
ROLE_MANAGER: Владелец пространства. В пользовательском интерфейсе чата эта роль называется Owner .
-
-
Преобразование участника в владельца (аутентификация пользователя)
В следующем примере используется API чата с аутентификацией пользователя для назначения обычного участника пространства владельцем пространства путем указания role ROLE_MANAGER :
Node.js
Для запуска примера замените следующее:
-
SPACE_NAME: идентификатор изnameпространства. Вы можете получить идентификатор, вызвав методListSpaces()или из URL-адреса пространства. -
MEMBER_NAME: идентификатор изnameчленства. Вы можете получить идентификатор, вызвав методListMemberships(), или из тела ответа, возвращаемого после асинхронного создания членства с помощью Chat API. -
ROLE_NAME: обновленная роль,ROLE_MANAGER. Вы можете установить это значение на любое значение изMembershipRole. Например, чтобы сделать обычного участника менеджером пространства, изменитеROLE_NAMEнаROLE_ASSISTANT_MANAGER.
API Google Chat обновляет данные о членстве владельца пространства и возвращает экземпляр Membership .
Смена владельца на участника (аутентификация пользователя)
В следующем примере используется API чата с аутентификацией пользователя для того, чтобы сделать владельца пространства обычным участником пространства, указав role как ROLE_MEMBER :
Node.js
Для запуска примера замените следующее:
-
SPACE_NAME: идентификатор изnameпространства. Вы можете получить идентификатор, вызвав методListSpaces()или из URL-адреса пространства. -
MEMBER_NAME: идентификатор изnameчленства. Вы можете получить идентификатор, вызвав методListMemberships(), или из тела ответа, возвращаемого после асинхронного создания членства с помощью Chat API. -
ROLE_NAME: обновленная роль,ROLE_MEMBER.
API Google Chat обновляет данные о членстве владельца пространства и возвращает экземпляр Membership .
Преобразование участника в владельца (аутентификация в чат-приложении)
Для аутентификации приложения требуется одноразовое подтверждение администратора .
Напишите скрипт, который вызывает API чата.
В следующем примере вызывается API чата с использованием аутентификации приложения , чтобы сделать обычного участника пространства владельцем пространства, указав role ROLE_MANAGER в body , определяющем обновленные атрибуты членства:
Python
- В рабочей директории создайте файл с именем
chat_membership_update_to_owner_app.py. Включите следующий код в
chat_membership_update_to_owner_app.py:from google.oauth2 import service_account from apiclient.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.app.memberships"] def main(): ''' Authenticates with Chat API using app authentication, then updates a specified space member to change it from a regular member to a space owner. ''' # Specify service account details. creds = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # 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().patch( # The membership to update, and the updated role. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MEMBERSHIP with a membership name. # Obtain the membership name from the membership of Chat API. name='spaces/SPACE/members/MEMBERSHIP', updateMask='role', # Replace ROLE with a MembershipRole value. # Obtain the MembershipRole values from the membership of Chat API. body={'role': 'ROLE'} ).execute() # Prints details about the updated membership. print(result) if __name__ == '__main__': main()В коде замените следующее:
SPACE: имя пространства, которое можно получить с помощью методаspaces.listв API чата или из URL-адреса пространства.MEMBERSHIP: название членства, которое можно получить из методаspaces.members.listв API чата.ROLE: обновленная роль,ROLE_MANAGER. Вы можете установить это значение на любое значение изMembershipRole. Например, чтобы сделать обычного участника менеджером пространства, изменитеROLEнаROLE_ASSISTANT_MANAGER.
В рабочей директории соберите и запустите пример:
python3 chat_membership_update_to_owner_app.py
Смена владельца на участника (аутентификация в чат-приложении)
Для аутентификации приложения требуется одноразовое подтверждение администратора .
Напишите скрипт, который вызывает API чата.
В следующем примере вызывается API чата с использованием аутентификации приложения , чтобы сделать владельца пространства обычным участником пространства, указав role ROLE_MEMBER в body , определяющем обновленные атрибуты членства:
Python
- В рабочей директории создайте файл с именем
chat_membership_update_to_member_app.py. Включите следующий код в
chat_membership_update_to_member_app.py:from google.oauth2 import service_account from apiclient.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.app.memberships"] def main(): ''' Authenticates with Chat API via user credentials, then updates a specified space owner to change it to a regular member. ''' # Specify service account details. creds = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # 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().patch( # The membership to update, and the updated role. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MEMBERSHIP with a membership name. # Obtain the membership name from the membership of Chat API. name='spaces/SPACE/members/MEMBERSHIP', updateMask='role', body={'role': 'ROLE_MEMBER'} ).execute() # Prints details about the updated membership. print(result) if __name__ == '__main__': main()В коде замените следующее:
SPACE: имя пространства, которое можно получить с помощью методаspaces.listв API чата или из URL-адреса пространства.MEMBERSHIP: название членства, которое можно получить из методаspaces.members.listв API чата.
В рабочей директории соберите и запустите пример:
python3 chat_membership_update_to_member_app.py
Обновите данные участников, будучи администратором Google Workspace.
Если вы являетесь администратором Google Workspace, вы можете вызвать метод update() для обновления членства в любом пространстве вашей организации Google Workspace.
Чтобы вызвать этот метод от имени администратора Google Workspace, выполните следующие действия:
- Вызовите метод, используя аутентификацию пользователя, и укажите область авторизации , которая поддерживает вызов метода с правами администратора .
- В вашем запросе укажите параметр
useAdminAccessсо значениемtrue.
Для получения дополнительной информации и примеров см. раздел «Управление пространствами Google Chat в качестве администратора Google Workspace» .
Связанные темы
- Пригласите или добавьте пользователя или приложение Google Chat в пространство .
- Получите подробную информацию о членстве пользователя или приложения для чата .
- Список участников в пространстве .
- Удалить пользователя или приложение чата из пространства .