Alandaki kullanıcıları ve Google Chat uygulamalarını listeleme

Bu kılavuzda, alandaki kullanıcıları ve Chat uygulamasını alandaki üyeliklerin sayfalandırılmış, filtrelenebilir bir listesi olarak listelemek için Google Chat API'nin membership kaynağındaki list yönteminin nasıl kullanılacağı açıklanmaktadır. Uygulama kimlik doğrulamasıyla giriş yapma üyelikleri, Chat uygulamasının erişebildiği alanlardaki üyelikleri listeler ancak kendininkiler dahil olmak üzere Chat uygulaması üyeliklerini hariç tutar. Kullanıcı kimlik doğrulaması ile üyeliklerin listelenmesi, kimliği doğrulanan kullanıcının erişebildiği alanlardaki üyelikleri listeler.

Membership kaynağı, bir insan kullanıcının veya Google Chat uygulamasının bir alana davet edildiğini, bir alanın bir parçası olduğunu ya da bir alanda bulunmadığını belirtir.

Ö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.
  • Yetkilendirme, Chat uygulaması için yapılandırıldı. Giriş üyelikleri, aşağıdaki kimlik doğrulama yöntemlerinin her ikisini de destekler:

Kullanıcı kimlik doğrulamalı bir alanda kullanıcıları ve Chat uygulamasını listeleme

Kimliği doğrulanmış kullanıcının erişebildiği bir alandaki kullanıcıları ve Chat uygulamasını listelemek için isteğinizde aşağıdakileri iletin:

Aşağıdaki örnekte, filter, ROLE_Member olarak ayarlandığından kimliği doğrulanmış kullanıcının görebildiği insan alan üyeleri (alan yöneticileri değil) listelenmiştir:

Python

  1. Çalışma dizininizde chat_member_list_user.py adında bir dosya oluşturun.
  2. chat_member_list_user.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.memberships.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists human space members (but not space managers) in a
        specified space.
        '''
    
        # 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().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Kodda, SPACE değerini Chat API'deki spaces.list yönteminden veya alanın URL'sinden alabileceğiniz bir alan adıyla değiştirin.

  4. Çalışma dizininizde örneği derleyip çalıştırın:

    python3 chat_member_list_user.py
    

Google Chat API, belirtilen alandaki insan alan üyelerinin (alan yöneticileri hariç) ve uygulama üyelerinin listesini döndürür.

Uygulama kimlik doğrulamalı bir alanda kullanıcıları ve Chat uygulamasını listeleme

Kimliği doğrulanmış uygulamanın erişebildiği bir alandaki kullanıcıları ve Chat uygulamasını listelemek için isteğinizde aşağıdakileri iletin:

Aşağıdaki örnekte, Chat uygulamasının görebildiği insan alan üyeleri (alan yöneticileri değil) listelenmektedir:

Python

  1. Çalışma dizininizde chat_member_list_app.py adında bir dosya oluşturun.
  2. chat_member_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().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
    print(result)
    
  3. Kodda, SPACE değerini Chat API'deki spaces.list yönteminden veya alanın URL'sinden alabileceğiniz bir alan adıyla değiştirin.

  4. Çalışma dizininizde örneği derleyip çalıştırın:

    python3 chat_member_list_app.py
    

Google Chat API, belirtilen alandaki insan alan üyelerinin (alan yöneticileri hariç) listesini döndürür.

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

Üyelikleri listelemek için listelenen üyeliklerin sayfalandırmasını özelleştirmek veya bu üyelikleri filtrelemek amacıyla aşağıdaki sorgu parametrelerini iletin:

  • pageSize: Döndürülecek maksimum üyelik 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. Kullanıcı kimlik doğrulaması gerektirir. Desteklenen sorgu ayrıntıları için spaces.members.list yöntemini inceleyin.