Membuat ruang bernama di Google Chat

Panduan ini menjelaskan cara membuat ruang bernama menggunakan metode create() pada resource Space Google Chat API.

Ruang bernama (tempat spaceType berada SPACE) adalah tempat orang mengirim pesan, berbagi file, dan berkolaborasi. Ruang bernama dapat menyertakan aplikasi Chat. Ruang bernama memiliki pengelola ruang yang dapat menerapkan setelan administratif, deskripsi, serta menambahkan atau menghapus orang dan aplikasi.

Untuk membuat berbagai jenis ruang Chat (termasuk pesan langsung atau pesan grup), gunakan metode setUp() di resource Space untuk membuat ruang dan menambahkan anggota secara bersamaan. Untuk mengetahui detailnya, lihat Menyiapkan ruang.

Setelah membuat ruang bernama, satu-satunya anggota ruang adalah pengguna yang diautentikasi. Untuk menambahkan anggota ke ruang, panggil metode create() di resource Membership untuk setiap orang atau aplikasi yang ingin Anda tambahkan. Atau, Anda dapat menggunakan metode setUp() untuk membuat ruang bernama dan menambahkan anggota ke ruang tersebut secara bersamaan.

Prasyarat

Node.js

Python

Java

Apps Script

Membuat ruang bernama sebagai pengguna

Untuk membuat ruang bernama dengan autentikasi pengguna, teruskan hal berikut dalam permintaan Anda:

  • Tentukan cakupan otorisasi chat.spaces.create atau chat.spaces.
  • Panggil metode CreateSpace() dengan meneruskan space sebagai instance Space dengan kolom berikut:
    • spaceType disetel ke SPACE.
    • displayName disetel ke nama ruang yang dapat dilihat pengguna.
    • Secara opsional, tetapkan atribut lain, seperti berikut:
      • spaceDetails- deskripsi yang dapat dilihat pengguna dan serangkaian panduan untuk ruang.
      • predefinedPermissionSettings- izin yang telah ditentukan untuk ruang. Misalnya, Anda dapat mengonfigurasinya sehingga semua anggota atau hanya pengelola ruang yang dapat memposting pesan.

Berikut cara membuat ruang bernama:

Node.js

chat/client-libraries/cloud/create-space-user-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);

Python

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()

Java

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));
    }
  }
}

Apps Script

chat/advanced-service/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);
}

Membuat ruang bernama sebagai aplikasi Chat

Autentikasi aplikasi memerlukan persetujuan administrator satu kali.

Untuk mengundang atau menambahkan pengguna ke ruang dengan autentikasi aplikasi, teruskan hal berikut dalam permintaan Anda:

  • Tentukan cakupan otorisasi chat.app.spaces.create atau chat.app.spaces.
  • Panggil metode create pada resource Space.
  • Tetapkan spaceType ke SPACE.
  • Setel displayName ke nama ruang yang terlihat oleh pengguna. Dalam contoh berikut, displayName disetel ke API-made.
  • Tentukan ID pelanggan domain Google Workspace menggunakan kolom customer.
  • Secara opsional, tetapkan atribut ruang lainnya, seperti spaceDetails (deskripsi yang terlihat oleh pengguna dan serangkaian panduan untuk ruang).

Membuat kunci API

Untuk memanggil metode Developer Preview API, Anda harus menggunakan versi pratinjau developer non-publik dari dokumen penemuan API. Untuk mengautentikasi permintaan, Anda harus meneruskan kunci API.

Untuk membuat Kunci API, buka project Google Cloud aplikasi Anda dan lakukan hal berikut:

  1. Di Konsol Google Cloud, buka Menu > APIs & Services > Credentials.

    Buka Kredensial

  2. Klik Create credentials > API key.
  3. Kunci API baru Anda akan ditampilkan.
    • Klik Salin untuk menyalin kunci API Anda untuk digunakan dalam kode aplikasi Anda. Kunci API juga dapat ditemukan di bagian "Kunci API" pada kredensial project Anda.
    • Klik Batasi kunci untuk memperbarui setelan lanjutan dan membatasi penggunaan kunci API Anda. Untuk mengetahui detail selengkapnya, lihat Menerapkan pembatasan kunci API.

Menulis skrip yang memanggil Chat API

Berikut cara membuat ruang bernama:

Python

  1. Di direktori kerja Anda, buat file bernama chat_space_create_named_app.py.
  2. Sertakan kode berikut di 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. Dalam kode, ganti kode berikut:

    • API_KEY: kunci API yang Anda buat untuk membangun endpoint layanan untuk Chat API.

    • CUSTOMER: ID pelanggan domain ruang dalam format customer/{customer}, dengan {customer} adalah ID dari resource pelanggan Admin SDK. Untuk membuat ruang di organisasi Google Workspace yang sama dengan aplikasi Chat, gunakan customers/my_customer.

  4. Di direktori kerja Anda, buat dan jalankan sampel:

    python3 chat_space_create_named_app.py

Membuka ruang di Google Chat

Untuk membuka ruang, gunakan ID resource ruang untuk membuat URL ruang. Anda dapat menemukan ID resource dari ruang name di isi respons Google Chat. Misalnya, jika name ruang Anda adalah spaces/1234567, Anda dapat membuka ruang menggunakan URL berikut: https://mail.google.com/chat/u/0/#chat/space/1234567.

Batasan dan pertimbangan

  • Saat Anda membuat ruang menggunakan autentikasi aplikasi, aplikasi Chat yang melakukan autentikasi ditambahkan sebagai anggota ruang, tetapi tidak seperti autentikasi pengguna, bukan sebagai pengelola ruang. Secara default, semua anggota ruang dapat menghapus aplikasi Chat. Untuk mengizinkan hanya pengelola ruang menghapus aplikasi Chat, tetapkan permissionSettings.manageApps ke managersAllowed.