Alanları listeleyin

Bu rehberde, alanları listelemek için Google Chat API'nin Space kaynağındaki list kaynağının nasıl kullanılacağı açıklanmaktadır. Alanları listelemek, alanların sayfalara ayrılmış, filtrelenebilir bir listesini döndürür.

Space kaynağı, kullanıcıların ve Chat uygulamalarının mesaj gönderebileceği, dosya paylaşabileceği ve ortak çalışma yapabileceği bir yeri temsil eder. Birkaç alan türü vardır:

  • Doğrudan mesajlar (DM), iki kullanıcı veya bir kullanıcı ile bir Chat uygulaması arasındaki görüşmelerdir.
  • Grup sohbetleri, üç veya daha fazla kullanıcı ile Chat uygulaması arasındaki görüşmelerdir.
  • Adlandırılmış alanlar, kullanıcıların mesaj gönderdiği, dosya paylaştığı ve ortak çalışma yaptığı kalıcı yerlerdir.

Uygulama kimlik doğrulaması içeren alanları listelemek, Chat uygulamasının erişebildiği alanları listeler. Kullanıcı kimlik doğrulaması ile listelenen alanlar, kimliği doğrulanmış kullanıcının erişebildiği alanları listeler.

Ön koşullar

Python

  • Python 3.6 veya sonraki sürümler
  • pip paket yönetimi aracı
  • Python için en yeni Google istemci kitaplıkları. Bunları yüklemek veya güncellemek için komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • Google Chat API'nin etkin ve yapılandırılmış olduğu bir Google Cloud projesi. Adımlar için Google Chat uygulaması oluşturma başlıklı makaleye göz atın.
  • Chat uygulaması için yetkilendirme yapılandırıldı. Alanları listelemek aşağıdaki kimlik doğrulama yöntemlerinin ikisini de destekler:

Node.js

  • Node.js ve npm
  • Node.js için en yeni Google istemci kitaplıkları. Bunları yüklemek için komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Google Chat API'nin etkin ve yapılandırılmış olduğu bir Google Cloud projesi. Adımlar için Google Chat uygulaması oluşturma başlıklı makaleye göz atın.
  • Chat uygulaması için yetkilendirme yapılandırıldı. Alanları listelemek aşağıdaki kimlik doğrulama yöntemlerinin ikisini de destekler:

Kullanıcı kimlik doğrulamalı alanları listeleme

Google Chat'te alanları listelemek için isteğinizde aşağıdakileri iletin:

Aşağıdaki örnekte, kimliği doğrulanmış kullanıcıya görünen adlandırılmış alanlar ve grup sohbetleri (filtrelenmiş doğrudan mesajlar değil) listelenmektedir:

Python

  1. Çalışma dizininizde chat_space_list.py adında bir dosya oluşturun.
  2. chat_space_list.py içine şu kodu ekleyin:

    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 lists named spaces and group chats (but not direct messages)
        visible to the authenticated user.
        '''
    
        # 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().list(
    
              # An optional filter that returns named spaces or unnamed group chats,
              # but not direct messages (DMs).
              filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
          ).execute()
    
        # Prints the returned list of spaces.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Çalışma dizininizde örneği derleyip çalıştırın:

    python3 chat_space_list.py
    

Node.js

  1. Çalışma dizininizde list-spaces.js adında bir dosya oluşturun.
  2. list-spaces.js içine şu kodu ekleyin:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      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.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. Çalışma dizininizde örneği çalıştırın:

    node list-spaces.js
    

Chat API, sayfalara ayrılmış adlandırılmış alanlar ve grup sohbetleri dizisi döndürür.

Uygulama kimlik doğrulamasıyla alanları listeleme

Google Chat'te alanları listelemek için isteğinizde aşağıdakileri iletin:

Aşağıdaki örnekte, Chat uygulamasının görebildiği adlandırılmış alanlar ve grup sohbetleri (doğrudan mesajlar değil) listelenmektedir:

Python

  1. Çalışma dizininizde chat_space_list_app.py adında bir dosya oluşturun.
  2. chat_space_list_app.py içine şu kodu ekleyin:

    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().list(
    
            # An optional filter that returns named spaces or unnamed
            # group chats, but not direct messages (DMs).
            filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
        ).execute()
    
    print(result)
    
  3. Çalışma dizininizde örneği derleyip çalıştırın:

    python3 chat_space_list_app.py
    

Node.js

  1. Çalışma dizininizde app-list-spaces.js adında bir dosya oluşturun.
  2. app-list-spaces.js içine şu kodu ekleyin:

    const chat = require('@googleapis/chat');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      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.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. Çalışma dizininizde örneği çalıştırın:

    node app-list-spaces.js
    

Chat API, sayfalara ayrılmış bir alan dizisi döndürür.

Sayfalandırmayı özelleştirme veya listeye filtre uygulama

Google Chat'te alanları listelemek için listelenen alanları sayfalandırmayı özelleştirmek veya filtrelemek amacıyla aşağıdaki isteğe bağlı sorgu parametrelerini iletin:

  • pageSize: Döndürülecek maksimum alan sayısı. Hizmet bu değerden daha az sonuç döndürebilir. Belirtilmemesi durumunda en fazla 100 boşluk döndürülür. Maksimum değer 1.000'dir. 1.000'in üzerindeki değerler otomatik olarak 1.000'e değiştirilir.
  • pageToken: Önceki bir alan listesi çağrısından alınan sayfa jetonu. Sonraki sayfayı almak için bu jetonu sağlayın. Sayfalara ayırırken, filtre değeri sayfa jetonunu sağlayan çağrıyla eşleşmelidir. Farklı bir değer iletme, beklenmedik sonuçlara yol açabilir.
  • filter: Sorgu filtresi. Desteklenen sorgu ayrıntıları için spaces.list yöntemini inceleyin.