Создайте именованное пространство в Google Chat

В этом руководстве объясняется, как создать именованное пространство с помощью метода create() ресурса Space API Google Chat.

Именованное пространство (где spaceTypeSPACE ) — это место, где люди отправляют сообщения, делятся файлами и сотрудничают. Именованные пространства могут включать приложения Chat. Именованные пространства имеют менеджеров пространств, которые могут применять административные настройки, описания, а также добавлять или удалять людей и приложения.

Чтобы создать различные типы чат-пространств (включая прямые сообщения или групповые сообщения), используйте метод setUp() на ресурсе Space чтобы создать пространство и добавить участников одновременно. Подробности см. в разделе Настройка пространства .

После создания именованного пространства единственным участником пространства является аутентифицированный пользователь. Чтобы добавить участников в пространство, вызовите метод create() на ресурсе Membership для каждого человека или приложения, которое вы хотите добавить. Или вы можете использовать метод setUp() , чтобы создать именованное пространство и одновременно добавить в него участников.

Предпосылки

Node.js

Питон

Ява

Скрипт приложений

Создайте именованное пространство как пользователь

Чтобы создать именованное пространство с аутентификацией пользователя , передайте в запрос следующее:

  • Укажите область авторизации chat.spaces.create или chat.spaces .
  • Вызовите метод CreateSpace() , передав space как экземпляр Space со следующими полями:
    • spaceType установлен на SPACE .
    • displayName задается в соответствии с видимым пользователем именем пространства.
    • При желании можно задать другие атрибуты, например следующие:
      • spaceDetails — видимое пользователю описание и набор правил для пространства.
      • predefinedPermissionSettings — предопределенные разрешения для пространства. Например, вы можете настроить его так, чтобы все участники или только менеджеры пространства могли публиковать сообщения.

Вот как создать именованное пространство:

Node.js

чат/клиентские-библиотеки/облако/создание-пространства-пользователь-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.spaces.create'];

// This sample shows how to create a named space with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    space: {
      spaceType: 'SPACE',
      // Replace DISPLAY_NAME here.
      displayName: 'DISPLAY_NAME'
    }
  };

  // Make the request
  const response = await chatClient.createSpace(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Питон

chat/client-libraries/cloud/create_space_user_cred.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.spaces.create"]

def create_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateSpaceRequest(
        space = {
            "space_type": 'SPACE',
            # Replace DISPLAY_NAME here.
            "display_name": 'DISPLAY_NAME'
        }
    )

    # Make the request
    response = client.create_space(request)

    # Handle the response
    print(response)

create_space_with_user_cred()

Ява

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateSpaceRequest;
import com.google.chat.v1.Space;

// This sample shows how to create space with user credential.
public class CreateSpaceUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.spaces.create";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      CreateSpaceRequest.Builder request = CreateSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          .setSpaceType(Space.SpaceType.SPACE)
          // Replace DISPLAY_NAME here.
          .setDisplayName("DISPLAY_NAME"));
      Space response = chatServiceClient.createSpace(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

Скрипт приложений

чат/расширенный-сервис/Main.gs
/**
 * This sample shows how to create space with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces.create'
 * referenced in the manifest file (appsscript.json).
 */
function createSpaceUserCred() {
  // Initialize request argument(s)
  const space = {
    spaceType: 'SPACE',
    // TODO(developer): Replace DISPLAY_NAME here
    displayName: 'DISPLAY_NAME'
  };

  // Make the request
  const response = Chat.Spaces.create(space);

  // Handle the response
  console.log(response);
}

Создайте именованное пространство как приложение чата

Для аутентификации приложения требуется однократное одобрение администратора .

Чтобы пригласить или добавить пользователя в пространство с аутентификацией через приложение , передайте в запросе следующее:

  • Укажите область авторизации chat.app.spaces.create или chat.app.spaces .
  • Вызовите метод create для ресурса Space .
  • Установите spaceType на SPACE .
  • Установите displayName на видимое пользователем имя пространства. В следующем примере displayName устанавливается на API-made .
  • Укажите идентификатор клиента домена Google Workspace, используя поле customer .
  • При желании можно задать другие атрибуты пространства, например spaceDetails (видимое пользователю описание и набор правил для пространства).

Создать ключ API

Для вызова метода API Developer Preview необходимо использовать непубличную версию Developer Preview документа API Discovery. Для аутентификации запроса необходимо передать ключ API.

Чтобы создать ключ API, откройте проект Google Cloud вашего приложения и выполните следующие действия:

  1. В консоли Google Cloud перейдите в > API и службы > Учетные данные .

    Перейти к учетным данным

  2. Нажмите Создать учетные данные > Ключ API .
  3. Отобразится ваш новый ключ API.
    • Нажмите Copy , чтобы скопировать ваш ключ API для использования в коде вашего приложения. Ключ API также можно найти в разделе «Ключи API» учетных данных вашего проекта.
    • Нажмите Ограничить ключ , чтобы обновить расширенные настройки и ограничить использование вашего ключа API. Для получения более подробной информации см. Применение ограничений ключа API .

Напишите скрипт, который вызывает Chat API

Вот как создать именованное пространство:

Питон

  1. В рабочем каталоге создайте файл с именем chat_space_create_named_app.py .
  2. Включите следующий код в chat_space_create_named_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.spaces.create"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then creates a Chat space.
        '''
    
        # 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, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.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',
    
            # The customer ID of the Workspace domain.
            'customer': 'CUSTOMER'
          }
    
          ).execute()
    
        # Prints details about the created space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. В коде замените следующее:

    • API_KEY : ключ API, созданный вами для создания конечной точки сервиса для API чата.

    • CUSTOMER : идентификатор клиента домена пространства в формате customer/{customer} , где {customer} — это ID из ресурса клиента Admin SDK . Чтобы создать пространство в той же организации Google Workspace, что и приложение Chat, используйте customers/my_customer .

  4. В рабочем каталоге соберите и запустите пример:

    python3 chat_space_create_named_app.py

Откройте пространство в Google Chat

Чтобы перейти к пространству, используйте идентификатор ресурса пространства для построения URL пространства. Вы можете найти идентификатор ресурса из name пространства в теле ответа Google Chat. Например, если name вашего пространства — spaces/1234567 , вы можете перейти к пространству, используя следующий URL: https://mail.google.com/chat/u/0/#chat/space/1234567 .

Ограничения и соображения

  • При создании пространства с использованием аутентификации приложения аутентифицирующее приложение Chat добавляется как участник пространства, но в отличие от аутентификации пользователя, не как менеджер пространства. По умолчанию все участники пространства могут удалить приложение Chat. Чтобы разрешить удалять приложение Chat только менеджерам пространства, установите permissionSettings.manageApps на managersAllowed .