Menyiapkan ruang dengan anggota awal

Panduan ini menjelaskan cara menggunakan metode setUp() di resource Space Google Chat API untuk menyiapkan ruang Google Chat. Menyiapkan ruang akan membuat ruang dan menambahkan pengguna tertentu ke dalamnya.

Tujuan Referensi Space mewakili tempat pengguna dan aplikasi Chat dapat mengirim pesan, berbagi file, dan berkolaborasi. Ada beberapa jenis ruang:

  • Pesan langsung (DM) adalah percakapan antara dua pengguna atau pengguna dan aplikasi Chat.
  • Chat grup adalah percakapan antara tiga pengguna atau lebih dan aplikasi Chat.
  • Ruang bernama adalah tempat permanen tempat orang mengirim pesan, berbagi file, dan berkolaborasi.

Saat menyiapkan ruang, pertimbangkan hal-hal berikut:

  • Pengguna yang melakukan panggilan (diautentikasi) akan otomatis ditambahkan ke ruang, sehingga Anda tidak perlu menyebutkan keanggotaan pengguna dalam permintaan.
  • Saat membuat pesan langsung (DM), jika ada DM antara dua pengguna, DM akan ditampilkan. Jika tidak, DM akan dibuat.
  • Saat membuat chat grup, jika tidak ada keanggotaan yang diberikan dalam permintaan berhasil ditambahkan ke chat grup (misalnya, masalah izin), kemudian chat grup kosong (termasuk hanya pengguna yang menelepon) mungkin akan dibuat.
  • Anda tidak dapat menyiapkan ruang dengan balasan berangkai atau menambahkan orang di luar Google Workspace.
  • Langganan duplikat (termasuk pengguna yang menelepon) yang diberikan dalam permintaan akan difilter, bukan menyebabkan error permintaan.

Prasyarat

Node.js

Python

Java

Apps Script

Siapkan ruang

Untuk menyiapkan ruang, teruskan hal berikut dalam permintaan Anda:

  • Tentukan cakupan otorisasi chat.spaces.create atau chat.spaces.
  • Panggil metode SetUpSpace().
  • Teruskan space sebagai instance Space dengan semua kolom yang diperlukan seperti displayName atau spaceType.
  • Teruskan memberships sebagai array Membership instance Compute Engine. Untuk setiap instance:
    • Tentukan users/{user} untuk menambahkan pengguna manusia sebagai anggota ruang, dengan {user} adalah {person_id} untuk person dari People API, atau ID user di Directory API. Misalnya, jika orang People API resourceName adalah people/123456789, Anda dapat menambahkan pengguna ke ruang dengan menyertakan keanggotaan dengan users/123456789 sebagai member.name.
    • Tentukan groups/{group} untuk menambahkan grup sebagai anggota ruang, dengan {group} adalah ID grup yang Anda ingin buatkan keanggotaannya. ID untuk grup dapat diambil menggunakan API Cloud Identity. Misalnya, jika API Cloud Identity menampilkan grup dengan nama groups/123456789, lalu tetapkan membership.groupMember.name ke groups/123456789. Google Grup tidak dapat ditambahkan ke chat grup atau DM, tetapi hanya ke ruang yang ditentukan.

Untuk membuat DM antara pengguna yang menelepon dan pengguna manusia lainnya, tentukan keanggotaan pengguna manusia dalam permintaan Anda.

Untuk membuat DM antara pengguna yang menelepon dan aplikasi panggilan, setel space.singleUserBotDm untuk true dan tidak menentukan keanggotaan apa pun. Anda dapat hanya menggunakan metode ini untuk menyiapkan DM dengan aplikasi panggilan. Untuk menambahkan panggilan sebagai anggota ruang atau DM yang ada antara dua pengguna manusia, lihat membuat keanggotaan.

Contoh berikut membuat ruang bernama dan membuat satu langganan ke ruang untuk dua pengguna manusia (pengguna terautentikasi dan satu pengguna lainnya).

Node.js

chat/client-libraries/cloud/set-up-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 set up a named space with one initial member
// 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'
    },
    memberships: [{
      member: {
        // Replace USER_NAME here.
        name: 'users/USER_NAME',
        type: 'HUMAN'
      }
    }]
  };

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

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

main().catch(console.error);

Python

chat/client-libraries/cloud/set_up_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 set_up_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.SetUpSpaceRequest(
        space = {
            "space_type": 'SPACE',
            # Replace DISPLAY_NAME here.
            "display_name": 'DISPLAY_NAME'
        },
        memberships = [{
            "member": {
                # Replace USER_NAME here.
                "name": 'users/USER_NAME',
                "type_": 'HUMAN'
            }
        }]
    )

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

    # Handle the response
    print(response)

set_up_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/SetUpSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.Membership;
import com.google.chat.v1.SetUpSpaceRequest;
import com.google.chat.v1.Space;
import com.google.chat.v1.User;

// This sample shows how to set up a named space with one initial member with
// user credential.
public class SetUpSpaceUserCred {

  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))) {
      SetUpSpaceRequest.Builder request = SetUpSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          .setSpaceType(Space.SpaceType.SPACE)
          // Replace DISPLAY_NAME here.
          .setDisplayName("DISPLAY_NAME"))
        .addAllMemberships(ImmutableList.of(Membership.newBuilder()
          .setMember(User.newBuilder()
            // Replace USER_NAME here.
            .setName("users/USER_NAME")
            .setType(User.Type.HUMAN)).build()));
      Space response = chatServiceClient.setUpSpace(request.build());

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

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to set up a named space with one initial member 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 setUpSpaceUserCred() {
  // Initialize request argument(s)
  const space = {
    spaceType: 'SPACE',
    // TODO(developer): Replace DISPLAY_NAME here
    displayName: 'DISPLAY_NAME'
  };
  const memberships = [{
    member: {
      // TODO(developer): Replace USER_NAME here
      name: 'users/USER_NAME',
      // User type for the membership
      type: 'HUMAN'
    }
  }];

  // Make the request
  const response = Chat.Spaces.setup({ space: space, memberships: memberships });

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

Untuk menjalankan contoh, ganti kode berikut:

  • DISPLAY_NAME: nama tampilan ruang baru.
  • USER_NAME: ID pengguna lain yang akan menyertakan keanggotaannya.

Untuk membuka ruang, gunakan ID resource ruang untuk membuat URL ruang. Anda bisa mendapatkan ID resource dari ruang name di respons Google Chat {i>body <i}itu. Misalnya, jika name ruang Anda adalah spaces/1234567, Anda dapat ke ruang menggunakan URL berikut: https://mail.google.com/chat/u/0/#chat/space/1234567.