Mencantumkan peristiwa dari ruang Google Chat

Panduan ini menjelaskan cara menggunakan metode list() pada resource SpaceEvent Google Chat API untuk mencantumkan perubahan pada resource dalam ruang.

Resource SpaceEvent mewakili perubahan pada ruang target, termasuk resource turunan ruang seperti pesan, reaksi, dan keanggotaan. Untuk mengetahui informasi selengkapnya tentang daftar jenis peristiwa dan payload peristiwa yang didukung, lihat kolom eventType dan payload dalam dokumentasi referensi resource SpaceEvent.

Anda dapat mencantumkan acara hingga 28 hari sebelum waktu permintaan. Server menampilkan peristiwa yang berisi versi terbaru dari resource yang terpengaruh. Misalnya, jika Anda mencantumkan peristiwa tentang anggota ruang baru, server akan menampilkan Membership resource yang berisi detail keanggotaan terbaru. Jika anggota baru dihapus selama periode yang diminta, payload peristiwa akan berisi resource Membership kosong.

Untuk mencantumkan acara dari ruang, pengguna terautentikasi atau aplikasi Chat harus menjadi anggota ruang.

Prasyarat

Node.js

Python

Mencantumkan peristiwa ruang (autentikasi pengguna)

Untuk mencantumkan peristiwa ruang dari ruang Chat, 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 memilih cakupan, lihat Ringkasan autentikasi dan otorisasi.

  • Panggil metode ListSpaceEvents() dengan meneruskan filter jenis peristiwa yang akan dicantumkan. Anda harus menentukan setidaknya satu jenis peristiwa, dan Anda juga dapat memfilter menurut tanggal. Untuk mengetahui daftar jenis peristiwa yang didukung, lihat kolom eventType dari dokumentasi referensi SpaceEvent resource.

Contoh berikut mencantumkan peristiwa tentang pesan dan langganan baru dalam ruang:

Node.js

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

// Authorization scopes based on the event types
const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships.readonly',
  'https://www.googleapis.com/auth/chat.messages.readonly',
];

// This sample shows how to list space events 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 here
    parent: 'spaces/SPACE_NAME',
    // A required filter. Filters events about new memberships and messages.
    filter:
      'eventTypes:"google.workspace.chat.membership.v1.created" OR eventTypes:"google.workspace.chat.message.v1.created"',
  };

  // Make the request
  const pageResult = chatClient.listSpaceEventsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

await main();

Untuk menjalankan contoh ini, ganti SPACE_NAME dengan ID dari name ruang. Anda bisa mendapatkan ID dengan memanggil metode ListSpaces() atau dari URL ruang.

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

Mencantumkan peristiwa ruang (Autentikasi aplikasi Chat)

Autentikasi aplikasi memerlukan persetujuan administrator satu kali.

Untuk mencantumkan peristiwa ruang dari ruang dengan autentikasi aplikasi dan 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 list pada resource spaceEvents.
  • Teruskan name ruang untuk mencantumkan pesan dari.
  • Teruskan filter untuk mengkueri jenis peristiwa tertentu.

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 mencantumkan acara ruang dengan autentikasi aplikasi dan Chat REST API:

Python

  1. Di direktori kerja Anda, buat file bernama chat_spaceevents_list_app.py.
  2. Sertakan kode berikut di chat_spaceevents_list_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().list(
    
            # The space to list events 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.
            parent='spaces/SPACE_NAME',
    
            # A required filter. Filters events by event type.
            #
            # Update this filter to match your requirements.
            filter='eventTypes:"google.workspace.chat.message.v1.created"'
    
        ).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.
  4. Di direktori kerja Anda, buat dan jalankan sampel:

    python3 chat_spaceevents_list_app.py

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