Alandaki üyeleri listeleme

Bu kılavuzda, bir alandaki üyeleri bir alandaki üyeleri sayfalara ayrılmış ve filtrelenebilir bir liste olarak listelemek için Google Chat API'nin membership kaynağında list yönteminin nasıl kullanılacağı açıklanmaktadır. Uygulama kimlik doğrulaması ile üyelik girişi, Chat uygulamasının erişebildiği alanlardaki üyelikleri listeler ancak kendi üyelikleri de dahil olmak üzere Chat uygulaması üyeliklerini hariç tutar. Kullanıcı kimlik doğrulamasıyla giriş yaptığında, kimliği doğrulanmış kullanıcının erişebildiği alanlardaki üyelikler listelenir.

Membership kaynağı, bir insan kullanıcının veya Google Chat uygulamasının alana davet edilip edilmediğini, bir kısmının olup olmadığını ya da bir alanda mevcut olup olmadığını belirtir.

Ön koşullar

Python

  • Python 3.6 veya sonraki sürümler
  • pip paket yönetim 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 etkinleştirildiği ve yapılandırıldığı bir Google Cloud projesi Adımlar için Google Chat uygulaması oluşturma başlıklı makaleyi inceleyin.
  • Chat uygulaması için yetkilendirme yapılandırıldı. Üyelikler listelemek aşağıdaki kimlik doğrulama yöntemlerinin ikisini de destekler:

Kullanıcı kimlik doğrulamasıyla alandaki üyeleri listeleyin

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

Aşağıdaki örnekte, kimliği doğrulanmış kullanıcı tarafından görülebilen Google Grubu, gerçek kişi ve uygulama üyeleri listelenmektedir.

Python

  1. Çalışma dizininizde chat_member_list_user.py adlı bir dosya oluşturun.
  2. Aşağıdaki kodu chat_member_list_user.py bölümüne 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 Google Group, human, and app members 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',
    
            # Set this parameter to list Google Groups.
            showGroups = 'true'
    
        ).execute()
    
        # Prints the list of memberships.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Kodda SPACE alanını bir alan adıyla değiştirin. Bu adı, Chat API'deki spaces.list yönteminden veya bir alanın URL'sinden öğrenebilirsiniz.

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

    python3 chat_member_list_user.py
    

Google Chat API, belirtilen alandaki Google Grubu, gerçek kişi ve uygulama üyelerinin bir listesini döndürür.

Uygulama kimlik doğrulamasıyla alandaki üyeleri listeleyin

Kimliği doğrulanmış uygulamanın erişebildiği bir alandaki kullanıcıları ve Chat uygulamasını listelemek için isteğinize aşağıdaki bilgileri ekleyin:

Aşağıdaki örnekte, Chat uygulamasında görünür olan gerçek kişi olan alan üyeleri (alan yöneticileri değil) listelenmiştir:

Python

  1. Çalışma dizininizde chat_member_list_app.py adlı bir dosya oluşturun.
  2. Aşağıdaki kodu chat_member_list_app.py bölümüne 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 alanını bir alan adıyla değiştirin. Bu adı, Chat API'deki spaces.list yönteminden veya bir alanın URL'sinden öğrenebilirsiniz.

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

    python3 chat_member_list_app.py
    

Google Chat API, belirtilen alandaki gerçek kişi olan alan üyelerinin (alan yöneticileri hariç) bir listesini döndürür.

Sayfalara ayırma veya listeyi filtreleme

Üyelikleri listelemek için listelenen üyelikleri sayfalara ayırma veya filtreleme işlemini özelleştirmek amacıyla aşağıdaki sorgu parametrelerini iletin:

  • pageSize: Döndürülecek maksimum üyelik sayısı. Hizmet bu değerden daha az değer döndürebilir. Belirtilmemişse 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 liste ç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 iletmek 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öntemine bakın.