Bu sayfada, subscriptions.list()
yöntemi kullanılarak Google Workspace aboneliklerinin nasıl listeleneceği açıklanmaktadır.
Bu yöntemi kullanıcı kimlik doğrulamasıyla çağırdığınızda, yöntem kullanıcının yetkilendirdiği aboneliklerin listesini döndürür. Uygulama kimlik doğrulamayı kullandığınızda yöntem, uygulamayla ilgili tüm abonelikleri içeren bir liste döndürebilir.
Ön koşullar
Apps Komut Dosyası
- Google Workspace aboneliği Abonelik oluşturmak için Abonelik oluşturma başlıklı makaleyi inceleyin.
Abonelikle ilgili tüm etkinlik türlerini destekleyen bir veya daha fazla kapsam ile kullanıcı kimlik doğrulaması gerektirir.
- Bir Apps Komut Dosyası projesi:
- Apps Komut Dosyası tarafından otomatik olarak oluşturulan varsayılan proje yerine Google Cloud projenizi kullanın.
- OAuth izin ekranını yapılandırmak için eklediğiniz tüm kapsamlar için kapsamları Apps Komut Dosyası projenizdeki
appsscript.json
dosyasına da eklemeniz gerekir. Örneğin,chat.messages
kapsamını belirttiyseniz aşağıdakileri ekleyin: Google Workspace Events
gelişmiş hizmetini etkinleştirin.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
Python
- Python 3.6 veya sonraki sürümler
- pip paket yönetim aracı
- Python için en yeni Google istemci kitaplıkları. Bu araçları 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 Workspace aboneliği Abonelik oluşturmak için Abonelik oluşturma başlıklı makaleyi inceleyin.
Kimlik doğrulama gerektirir:
- Kullanıcı kimlik doğrulaması için abonelikle ilgili etkinlik türlerinden en az birini destekleyen bir kapsam gerekir. Kapsam belirlemek için Etkinlik türüne göre kapsamlar başlıklı makaleye bakın.
- Uygulama kimlik doğrulaması için
chat.bot
kapsamı gerekir (yalnızca Google Chat uygulamaları).
Kullanıcı tarafından yetkilendirilen abonelikleri listeleme
Abonelikleri listelemek için en az bir etkinlik türüne göre filtreleme yapmanız gerekir. Ayrıca sorgunuzu bir veya daha fazla hedef kaynağa göre de filtreleyebilirsiniz. Desteklenen sorgu filtreleri hakkında bilgi edinmek için list()
yöntemiyle ilgili dokümanları inceleyin.
Aşağıdaki kod örneği, etkinlik türüne ve hedef kaynağa göre filtrelenmiş bir Subscription
nesne dizisi döndürür. Kullanıcı olarak kimlik doğrulandığında yöntem yalnızca kullanıcının uygulamaya oluşturma yetkisi verdiği aboneliklerin listesini döndürür.
Belirli bir etkinlik türü ve hedef kaynak için abonelikleri listelemek üzere:
Apps Komut Dosyası
Apps Komut Dosyası projenizde
listSubscriptions
adlı yeni bir komut dosyası oluşturun ve aşağıdaki kodu ekleyin:function listSubscriptions() { // Filter for event type (required). const eventType = 'EVENT_TYPE'; // Filter for target resource (optional). const targetResource = 'TARGET_RESOURCE'; const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"` // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.list({ filter }); console.log(response); }
Aşağıdakini değiştirin:
EVENT_TYPE
: CloudEvents spesifikasyonuna göre biçimlendirilmiş bir etkinlik türü. Örneğin,google.workspace.chat.message.v1.created
Google Chat alanına yeni üyeliklerle ilgili etkinlikler alan abonelikleri filtrelemek için.TARGET_RESOURCE
: Tam kaynak adı olarak biçimlendirilmiş bir hedef kaynak. Örneğin, bir Google Chat alanındaki aboneliklere göre filtrelemek için//chat.googleapis.com/spaces/SPACE_ID
ifadesini kullanın. Buradaspaces/SPACE_ID
,Space
kaynağınınname
alanını temsil eder.
Abonelikleri listelemek için Apps Komut Dosyası projenizde
listSubscriptions
işlevini çalıştırın.
Python
Çalışma dizininizde
list_subscriptions.py
adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:"""List subscriptions.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = ['SCOPE'] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES) CREDENTIALS = flow.run_local_server() # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) # Filter for event type (required). EVENT_TYPE = 'EVENT_TYPE' # Filter for target resource (optional). TARGET_RESOURCE = 'TARGET_RESOURCE' FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"' response = service.subscriptions().list(filter=FILTER).execute() print(response)
Aşağıdakini değiştirin:
SCOPE
: Abonelikteki en az bir etkinlik türünü destekleyen bir OAuth kapsamı. Örneğin, aboneliğiniz güncellenmiş bir Chat alanı gibi etkinlikler alıyorsahttps://www.googleapis.com/auth/chat.spaces.readonly
.EVENT_TYPE
: CloudEvents spesifikasyonuna göre biçimlendirilmiş bir etkinlik türü. Örneğin,google.workspace.chat.message.v1.created
Google Chat alanına yeni üyeliklerle ilgili etkinlikler alan abonelikleri filtrelemek için.TARGET_RESOURCE
: Tam kaynak adı olarak biçimlendirilmiş bir hedef kaynak. Örneğin, bir Google Chat alanındaki aboneliklere göre filtrelemek için//chat.googleapis.com/spaces/SPACE_ID
ifadesini kullanın. Buradaspaces/SPACE_ID
,Space
kaynağınınname
alanını temsil eder.
Çalışma dizininizde OAuth istemci kimliği kimlik bilgilerinizi sakladığınızdan ve dosyayı
credentials.json
olarak adlandırdığınızdan emin olun. Kod örneği, Google Workspace ile kimlik doğrulaması yapmak ve kullanıcı kimlik bilgilerini almak için bu JSON dosyasını kullanır. Talimatlar için OAuth istemci kimliği kimlik bilgileri oluşturma başlıklı makaleye bakın.Abonelikleri listelemek için terminalinizde aşağıdakileri çalıştırın:
python3 list_subscriptions.py
Google Workspace Events API, sorgunuzun filtresiyle eşleşen sayfalandırılmış bir Subscription
nesne dizisi
döndürür.