Mendapatkan detail tentang acara ruang Google Chat

Panduan ini menjelaskan cara menggunakan metode get() pada resource SpaceEvent Google Chat API untuk mendapatkan detail tentang peristiwa dari ruang Google Chat.

Resource SpaceEvent mewakili perubahan pada ruang atau resource turunannya, seperti pesan, reaksi, dan keanggotaan. Untuk mempelajari jenis peristiwa yang didukung, lihat dokumentasi referensi kolom eventType dari resource SpaceEvent.

Anda dapat meminta acara hingga 28 hari sebelum waktu permintaan. Peristiwa berisi versi terbaru dari resource yang berubah. Misalnya, jika Anda meminta peristiwa tentang pesan baru, tetapi pesan tersebut kemudian diperbarui, server akan menampilkan resource Message yang diperbarui dalam payload peristiwa.

Untuk memanggil metode ini, Anda harus menggunakan autentikasi pengguna. Untuk mendapatkan acara, pengguna yang diautentikasi harus menjadi anggota ruang tempat acara terjadi.

Prasyarat

Node.js

Python

Mendapatkan detail tentang peristiwa ruang (autentikasi pengguna)

Untuk mendapatkan detail tentang acara ruang di Google Chat, teruskan hal berikut dalam permintaan Anda:

  • Tentukan cakupan otorisasi yang mendukung jenis peristiwa dalam permintaan Anda. Sebagai praktik terbaik, pilih cakupan paling ketat yang tetap memungkinkan aplikasi Anda berfungsi.
  • Panggil metode GetSpaceEvent(), dengan meneruskan name peristiwa ruang yang akan didapatkan.

Contoh berikut mendapatkan peristiwa ruang:

Node.js

Contoh kode Node.js ini menggunakan Chat RPC API.

chat/client-libraries/cloud/get-space-event-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

// Replace SCOPE_NAME here with an authorization scope based on the event type
const USER_AUTH_OAUTH_SCOPES = ['SCOPE_NAME'];

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

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME and SPACE_EVENT_NAME here
    name: 'spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
  };

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

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

await main();

Untuk menjalankan contoh ini, ganti berikut ini:

  • SCOPE_NAME: cakupan otorisasi berdasarkan jenis peristiwa. Misalnya, jika Anda mendapatkan peristiwa ruang tentang langganan baru, gunakan cakupan chat.memberships.readonly, yang diformat sebagai https://www.googleapis.com/auth/chat.memberships.readonly. Anda bisa mendapatkan jenis peristiwa dari metode ListSpaceEvents(). Untuk mempelajari cara menggunakan metode ini, lihat Mencantumkan peristiwa dari ruang.
  • SPACE_NAME: ID dari name ruang. Anda bisa mendapatkan ID dengan memanggil metode ListSpaces() atau dari URL ruang.
  • SPACE_EVENT_NAME: ID dari name peristiwa ruang. Anda bisa mendapatkan ID dari metode ListSpaceEvents(). Untuk mempelajari cara menggunakan metode ini, lihat Mencantumkan peristiwa dari ruang.

Chat API menampilkan instance SpaceEvent dengan detail tentang peristiwa.

Mendapatkan detail tentang peristiwa ruang (Autentikasi aplikasi Chat)

Autentikasi aplikasi memerlukan persetujuan administrator satu kali.

Untuk mendapatkan detail tentang acara ruang dari ruang dengan autentikasi aplikasi menggunakan Chat REST API, teruskan hal berikut dalam permintaan Anda:

  • Tentukan satu atau beberapa cakupan otorisasi untuk mendukung setiap jenis peristiwa dalam permintaan Anda. Sebagai praktik terbaik, pilih cakupan yang paling ketat yang masih memungkinkan aplikasi Anda berfungsi. Untuk mempelajari lebih lanjut cara memilih cakupan, lihat Ringkasan autentikasi dan otorisasi.
    • https://www.googleapis.com/auth/chat.app.memberships
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
  • Panggil metode get pada resource spaceEvents.
  • Teruskan name ruang untuk mendapatkan detail acara.

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 "API Keys" pada kredensial project Anda.
    • Untuk mencegah penggunaan tanpa izin, sebaiknya batasi tempat dan API yang dapat menggunakan kunci API. Untuk mengetahui detail selengkapnya, lihat Menambahkan pembatasan API.

Menulis skrip yang memanggil Chat API

Berikut cara mendapatkan detail tentang peristiwa ruang dengan autentikasi aplikasi dan Chat REST API:

Python

Contoh kode Python ini menggunakan Chat REST API.

  1. Di direktori kerja Anda, buat file bernama chat_spaceevents_get_app.py.
  2. Sertakan kode berikut di chat_spaceevents_get_app.py:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # Set authorization scopes based on the
    # event type. For example, if you are getting a space event
    # about a new membership, use the `chat.app.memberships.readonly` scope.
    #
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then lists space events from a specified 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().spaceEvents().get(
    
            # The space to get event details from.
            #
            # Replace SPACE_NAME with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        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.
    • SPACE_NAME: nama ruang, yang bisa Anda dapatkan dari metode spaces.list di Chat API, atau dari URL ruang.
    • SPACE_EVENT_NAME: ID dari name peristiwa ruang. Anda bisa mendapatkan ID dari metode ListSpaceEvents(). Untuk mempelajari cara menggunakan metode ini, lihat Mencantumkan peristiwa dari ruang.
  4. Di direktori kerja Anda, buat dan jalankan sampel:

    python3 chat_spaceevents_get_app.py

Chat API menampilkan daftar daftar peristiwa ruang yang di-pagination tentang pesan dan keanggotaan baru.