Bir Google Chat alanındaki etkinlikleri listeleme

Bu rehberde, alandaki kaynaklarda yapılan değişiklikleri listelemek için Google Chat API'nin SpaceEvent kaynağında list yönteminin nasıl kullanılacağı açıklanmıştır.

SpaceEvent kaynağı; mesajlar, tepkiler ve üyelikler gibi alanın alt kaynakları dahil olmak üzere hedef alanda yapılan bir değişikliği temsil eder. Desteklenen etkinlik türlerinin ve etkinlik yüklerinin listesi hakkında daha fazla bilgi için SpaceEvent kaynak referans belgelerinin eventType ve payload alanlarını inceleyin.

Etkinlikleri, istek zamanından 28 gün öncesine kadar listeleyebilirsiniz. Sunucu etkilenen kaynağın en son sürümünü içeren etkinlikleri döndürür. Örneğin, alan üyeleriyle ilgili etkinlikleri listelerseniz sunucu en son üyelik ayrıntılarını içeren Membership kaynaklarını döndürür. İstenen dönemde yeni üyeler kaldırılırsa etkinlik yükü boş bir Membership kaynağı içerir.

Bu yöntemi çağırmak için kullanıcı kimlik doğrulamasını kullanmanız gerekir. Bir alandaki etkinliklerin listelenmesi için kimliği doğrulanmış kullanıcının alanın üyesi olması gerekir.

Ö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 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ı. SpaceEvent kaynaklarının listelenmesi, aşağıdaki kimlik doğrulama yöntemlerini destekler:

Alan etkinliklerini listeleme

Bir Chat alanındaki alan etkinliklerini listelemek için aşağıdakileri yapın:

Aşağıdaki kod örneğinde, bir alandaki yeni üyelikler ve mesajlarla ilgili etkinlikleri listelersiniz.

Python

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

    """Lists SpaceEvent resources from the Chat API."""
    
    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",
    "https://www.googleapis.com/auth/chat.messages.readonly"]
    
    # 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().spaceEvents().list(
    
        # The space from which to list events.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # A required filter. Filters and returns events about new memberships and messages
        filter='event_types:"google.workspace.chat.membership.v1.created" OR event_types:"google.workspace.chat.message.v1.created"'
    
    ).execute()
    
    # Prints details about the created space events.
    print(result)
    
  3. Kodda aşağıdakileri değiştirin:

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

    python3 chat_space_event_list.py
    

Chat API, yeni üyelikler ve mesajlarla ilgili SpaceEvent kaynak etkinliklerinin listesini döndürür.

Sayfalandırmayı özelleştirme

İsteğe bağlı olarak, sayfalandırmayı özelleştirmek için aşağıdaki sorgu parametrelerini iletin:

  • pageSize: Döndürülecek maksimum SpaceEvent kaynak sayısı. Hizmet bu değerden daha az sonuç döndürebilir. Negatif değerler INVALID_ARGUMENT hatası döndürür.
  • pageToken: Önceki bir liste alanı etkinlikleri ç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.