Menemukan ruang pesan langsung (DM)

Panduan ini menjelaskan cara menggunakan metode findDirectMessage pada resource Space Google Chat API untuk mendapatkan detail tentang ruang pesan langsung (DM).

Resource Space merepresentasikan tempat orang 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 tetap tempat orang mengirim pesan, berbagi file, dan berkolaborasi.

Mengautentikasi dengan autentikasi aplikasi memungkinkan aplikasi Chat mendapatkan DM yang dapat diakses oleh aplikasi Chat di Google Chat (misalnya, DM yang menjadi anggotanya). Mengautentikasi dengan autentikasi pengguna akan menampilkan DM yang dapat diakses oleh pengguna terautentikasi.

Prasyarat

Python

  • Python 3.6 atau yang lebih baru
  • Alat pengelolaan paket pip
  • Library klien Google terbaru untuk Python. Untuk menginstal atau mengupdatenya, jalankan perintah berikut di antarmuka command line Anda:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • Project Google Cloud dengan Google Chat API yang diaktifkan dan dikonfigurasi. Untuk mengetahui langkah-langkahnya, lihat Mem-build aplikasi Google Chat.
  • Otorisasi dikonfigurasi untuk aplikasi Chat. Menemukan pesan langsung mendukung kedua hal berikut:

Node.js

  • Node.js & npm
  • Library klien Google terbaru untuk Node.js. Untuk menginstalnya, jalankan perintah berikut di antarmuka command line Anda:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Project Google Cloud dengan Google Chat API yang diaktifkan dan dikonfigurasi. Untuk mengetahui langkah-langkahnya, lihat Mem-build aplikasi Google Chat.
  • Otorisasi dikonfigurasi untuk aplikasi Chat. Menemukan pesan langsung mendukung kedua hal berikut:

Menemukan pesan langsung

Untuk menemukan pesan langsung di Google Chat, teruskan kode berikut dalam permintaan Anda:

  • Dengan autentikasi aplikasi, tentukan cakupan otorisasi chat.bot. Dengan autentikasi pengguna, tentukan cakupan otorisasi chat.spaces.readonly atau chat.spaces.
  • Panggil metode findDirectMessage pada resource User, dengan meneruskan name pengguna lain di DM untuk ditampilkan. Dengan autentikasi pengguna, metode ini menampilkan DM antara pengguna yang melakukan panggilan dan pengguna tertentu. Dengan autentikasi aplikasi, metode ini menampilkan DM antara aplikasi yang melakukan panggilan dan pengguna yang ditentukan.
  • Untuk menambahkan pengguna manusia sebagai anggota ruang, tentukan users/{user}, dengan {user} adalah {person_id} untuk person dari People API, atau ID user di Directory API. Misalnya, jika pengguna People API resourceName adalah people/123456789, Anda dapat menambahkan pengguna ke ruang dengan menyertakan keanggotaan users/123456789 sebagai member.name.

Menemukan pesan langsung dengan autentikasi pengguna

Berikut ini cara menemukan pesan langsung dengan autentikasi pengguna:

Python

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.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.spaces.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then returns details about a specified DM.
        '''
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                          'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().findDirectMessage(
    
              # The other user in the direct message (DM) to return.
              #
              # Replace USER with a user name.
              name='users/USER'
    
          ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Dalam kode, ganti USER dengan name dari User di Google Chat.

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

    python3 chat_space_find_dm_user.py
    

Node.js

  1. Di direktori kerja, buat file bernama find-direct-message-space.js.

  2. Sertakan kode berikut di find-direct-message-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.readonly',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. Dalam kode, ganti USER dengan name dari User di Google Chat.

  4. Di direktori kerja Anda, jalankan contoh:

    node find-direct-message-space.js
    

Chat API menampilkan instance Space yang menjelaskan DM yang ditentukan.

Menemukan pesan langsung dengan autentikasi aplikasi

Berikut cara menemukan pesan langsung dengan autentikasi aplikasi:

Python

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().findDirectMessage(
    
        # The other user in the direct message (DM) to return.
        #
        # Replace USER with a user name.
        name='users/USER'
    
    ).execute()
    
    print(result)
    
  3. Dalam kode, ganti USER dengan name dari User di Google Chat.

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

    python3 chat_space_find_dm_app.py
    

Node.js

  1. Di direktori kerja, buat file bernama app-find-direct-message-space.js.

  2. Sertakan kode berikut di app-find-direct-message-space.js:

    const chat = require('@googleapis/chat');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.bot',
      ];
    
      const auth = new chat.auth.GoogleAuth({
        scopes,
        keyFilename: 'credentials.json',
      });
    
      const authClient = await auth.getClient();
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. Dalam kode, ganti USER dengan name dari User di Google Chat.

  4. Di direktori kerja Anda, jalankan contoh:

    node app-find-direct-message-space.js
    

Chat API menampilkan instance Space yang menjelaskan DM yang ditentukan.