Bu sayfada, Google Workspace kaynaklarına abonelik oluşturmak için Google Workspace Events API'nin nasıl kullanılacağı açıklanmaktadır. Google Workspace aboneliği, uygulamanızın Google Workspace etkinlikleri hakkında bilgi almasını sağlar. Bu etkinlikler, Google Workspace kaynaklarında yapılan değişiklikleri temsil eder. Google Workspace Events API'nin desteklediği kaynaklar ve etkinlik türleri hakkında bilgi edinmek için Google Workspace Events API'ye genel bakış başlıklı makaleyi inceleyin.
Bu sayfada, Google Workspace aboneliği oluşturmayla ilgili aşağıdaki adımlar yer alır:
- Ortamınızı ayarlayın.
- Google Cloud Pub/Sub konusu oluşturma ve konuya abone olma Google Workspace etkinliklerini almak için bu dokümanı uç nokta olarak kullanın.
Subscriptionkaynağında Google Workspace Events API'nincreateyöntemini çağırın.- Pub/Sub konunuzun abone olduğunuz etkinlikleri aldığını doğrulamak için Google Workspace aboneliğinizi test edin.
- İsteğe bağlı olarak, uygulamanızın etkinliği işleyebilmesi ve gerekirse işlem yapabilmesi için etkinlikleri uygulamanızın bir uç noktasına nasıl göndereceğinizi yapılandırın.
Ön koşullar
Apps Komut Dosyası
- Bu kılavuzdaki Google Cloud KSA komutlarını kullanmak için:
- Google Cloud CLI'yı yükleyin.
gcloudKSA'yı ilk kullanıma hazırlamak için aşağıdaki kodu çalıştırın:
gcloud init
- Apps Komut Dosyası projesi:
- Apps Komut Dosyası tarafından otomatik olarak oluşturulan varsayılan proje yerine Google Cloud projenizi kullanın.
- OAuth kullanıcı rızası ekranını yapılandırmak için eklediğiniz tüm kapsamları Apps Komut Dosyası projenizdeki
appsscript.jsondosyasına da eklemeniz gerekir. Örneğin,chat.messageskapsamını belirttiyseniz aşağıdakileri ekleyin: Google Workspace Eventsgelişmiş hizmetini etkinleştirin.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
- Faturalandırmanın etkin olduğu bir Google Cloud projesi. Chat abonelikleri için Cloud projenizde Chat API'yi de etkinleştirmeniz ve Uygulama adı, Avatar URL'si ve Açıklama alanlarını yapılandırmanız gerekir. Ayrıntılı bilgi için Google Chat uygulaması oluşturma başlıklı makaleyi inceleyin.
-
Abonelikteki her etkinlik türü için uygun bir yetkilendirme kapsamı ve kimlik doğrulama gerekir:
- Genellikle uygulama için yapılandırılmış OAuth kullanıcı rızası ekranı ile kullanıcı kimlik doğrulaması gerekir. Kullanıcı rızası ekranını yapılandırırken abonelik için her etkinlik türünü destekleyecek bir kapsam belirtmeniz gerekir. Kullanıcı rızası ekranını yapılandırmak ve gerekli kapsamları belirlemek için Kapsamları seçme başlıklı makaleyi inceleyin.
- Bir Chat uygulaması olarak Chat etkinliğine abone olmak için tek seferlik yönetici onayıyla uygulama kimlik doğrulaması gerekir.
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
- Bu kılavuzdaki Google Cloud KSA komutlarını kullanmak için:
- Google Cloud CLI'yı yükleyin.
gcloudKSA'yı ilk kullanıma hazırlamak için aşağıdaki kodu çalıştırın:
gcloud init
- Faturalandırmanın etkin olduğu bir Google Cloud projesi. Chat abonelikleri için Cloud projenizde Chat API'yi de etkinleştirmeniz ve Uygulama adı, Avatar URL'si ve Açıklama alanlarını yapılandırmanız gerekir. Ayrıntılı bilgi için Google Chat uygulaması oluşturma başlıklı makaleyi inceleyin.
-
Abonelikteki her etkinlik türü için uygun bir yetkilendirme kapsamı ve kimlik doğrulama gerekir:
- Genellikle uygulama için yapılandırılmış OAuth kullanıcı rızası ekranı ile kullanıcı kimlik doğrulaması gerekir. Kullanıcı rızası ekranını yapılandırırken abonelik için her etkinlik türünü destekleyecek bir kapsam belirtmeniz gerekir. Kullanıcı rızası ekranını yapılandırmak ve gerekli kapsamları belirlemek için Kapsamları seçme başlıklı makaleyi inceleyin.
- Bir Chat uygulaması olarak Chat etkinliğine abone olmak için tek seferlik yönetici onayıyla uygulama kimlik doğrulaması gerekir.
Ortamınızı ayarlama
Aşağıdaki bölümde, Google Workspace aboneliği oluşturmadan önce ortamınızı nasıl ayarlayacağınız açıklanmaktadır.
Google Workspace Events API ve Google Cloud Pub/Sub API'yi etkinleştirme
Google API'lerini kullanmadan önce bir Google Cloud projesinde etkinleştirmeniz gerekir. Tek bir Google Cloud projesinde bir veya daha fazla API'yi etkinleştirebilirsiniz.Google Cloud konsolu
Google Cloud Console'da uygulamanızın Google Cloud projesini açın ve Google Workspace Events API ile Pub/Sub API'yi etkinleştirin:
gcloud
Çalışma dizininizde Google Hesabınızda oturum açın:
gcloud auth loginProjenizi uygulamanızın Cloud projesine ayarlayın:
gcloud config set project PROJECT_IDPROJECT_IDyerine uygulamanızın Cloud projesinin proje kimliğini yazın.Google Workspace Events API ve Google Cloud Pub/Sub API'yi etkinleştirin:
gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com
OAuth istemci kimliği kimlik bilgilerini oluşturma
OAuth istemci kimliği oluşturmayla ilgili talimatlar için uygulama türünüzü seçin:
Web uygulaması
- Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > Web uygulaması'nı tıklayın.
- Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- Uygulamanızla ilgili yetkilendirilmiş URI'leri ekleyin:
- İstemci tarafı uygulamaları (JavaScript): Yetkilendirilmiş JavaScript kaynakları bölümünde URI ekle'yi tıklayın. Ardından, tarayıcı istekleri için kullanılacak bir URI girin. Bu, uygulamanızın OAuth 2.0 sunucusuna API istekleri gönderebileceği alanları tanımlar.
- Sunucu tarafı uygulamaları (Java, Python ve daha fazlası): Yetkilendirilmiş yönlendirme URI'leri bölümünde URI ekle'yi tıklayın. Ardından, OAuth 2.0 sunucusunun yanıt gönderebileceği bir uç nokta URI'si girin.
- İsteğe bağlı: Uygulamanız, kullanıcılar adına harekete geçen bir yapay zeka aracısıysa Bu istemciyi yapay zeka destekli bir aracı için kullan'ı seçin. Uygulamanız hem yapay zeka ajanı iş akışlarını hem de standart kullanıcı özelliklerini destekliyorsa her biri için ayrı OAuth istemcileri oluşturun. Müşteriyi oluşturduktan sonra bu ayarı değiştiremezsiniz.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi OAuth 2.0 İstemci Kimlikleri bölümünde görünür.
İstemci gizli anahtarlarının web uygulamaları için kullanılmadığını unutmayın.
Android
- Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > Android'i tıklayın.
- Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- Paket adı alanına
AndroidManifest.xmldosyanızdaki paket adını girin. - SHA-1 sertifika parmak izi alanına oluşturduğunuz SHA-1 sertifika parmak izinizi girin.
- İsteğe bağlı: Uygulamanız, kullanıcılar adına harekete geçen bir yapay zeka aracısıysa Bu istemciyi yapay zeka destekli bir aracı için kullan'ı seçin. Uygulamanız hem yapay zeka ajanı iş akışlarını hem de standart kullanıcı özelliklerini destekliyorsa her biri için ayrı OAuth istemcileri oluşturun. Müşteriyi oluşturduktan sonra bu ayarı değiştiremezsiniz.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
iOS
- Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > iOS'i tıklayın.
- Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- Paket kimliği alanına, uygulamanın
Info.plistdosyasında listelenen paket kimliğini girin. - İsteğe bağlı: Uygulamanız Apple App Store'da görünüyorsa App Store kimliğini girin.
- İsteğe bağlı: Ekip Kimliği alanına, Apple tarafından oluşturulan ve ekibinize atanan benzersiz 10 karakterlik dizeyi girin.
- İsteğe bağlı: Uygulamanız, kullanıcılar adına harekete geçen bir yapay zeka aracısıysa Bu istemciyi yapay zeka destekli bir aracı için kullan'ı seçin. Uygulamanız hem yapay zeka ajanı iş akışlarını hem de standart kullanıcı özelliklerini destekliyorsa her biri için ayrı OAuth istemcileri oluşturun. Müşteriyi oluşturduktan sonra bu ayarı değiştiremezsiniz.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
Chrome uygulaması
- Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > Chrome Uzantısı'nı tıklayın.
- Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- Öğe Kimliği alanına uygulamanızın benzersiz 32 karakterlik kimlik dizesini girin. Bu kimlik değerini, uygulamanızın Chrome Web Mağazası URL'sinde ve Chrome Web Mağazası Geliştirici Kontrol Paneli'nde bulabilirsiniz.
- İsteğe bağlı: Uygulamanız, kullanıcılar adına harekete geçen bir yapay zeka aracısıysa Bu istemciyi yapay zeka destekli bir aracı için kullan'ı seçin. Uygulamanız hem yapay zeka ajanı iş akışlarını hem de standart kullanıcı özelliklerini destekliyorsa her biri için ayrı OAuth istemcileri oluşturun. Müşteriyi oluşturduktan sonra bu ayarı değiştiremezsiniz.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
Masaüstü uygulaması
- Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > Masaüstü uygulaması'nı tıklayın.
- Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- İsteğe bağlı: Uygulamanız, kullanıcılar adına harekete geçen bir yapay zeka aracısıysa Bu istemciyi yapay zeka destekli bir aracı için kullan'ı seçin. Uygulamanız hem yapay zeka ajanı iş akışlarını hem de standart kullanıcı özelliklerini destekliyorsa her biri için ayrı OAuth istemcileri oluşturun. Müşteriyi oluşturduktan sonra bu ayarı değiştiremezsiniz.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
TV'ler ve sınırlı giriş cihazları
- Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > TV'ler ve Sınırlı Giriş cihazları'nı tıklayın.
- Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- İsteğe bağlı: Uygulamanız, kullanıcılar adına harekete geçen bir yapay zeka aracısıysa Bu istemciyi yapay zeka destekli bir aracı için kullan'ı seçin. Uygulamanız hem yapay zeka ajanı iş akışlarını hem de standart kullanıcı özelliklerini destekliyorsa her biri için ayrı OAuth istemcileri oluşturun. Müşteriyi oluşturduktan sonra bu ayarı değiştiremezsiniz.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
Evrensel Windows Platformu (UWP)
- Google API Konsolu'nda Menü > > İstemciler'e gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > Evrensel Windows Platformu (UWP) seçeneğini tıklayın.
- "Ad" alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google API Konsolu'nda gösterilir.
- "Mağaza kimliği" alanına uygulamanızın benzersiz, 12 karakterli Microsoft Store kimlik değerini girin. Bu kimliği, uygulamanızın Microsoft Store URL'sinde ve İş Ortağı Merkezi'nde bulabilirsiniz.
- İsteğe bağlı: Uygulamanız, kullanıcılar adına harekete geçen bir yapay zeka aracısıysa Bu istemciyi yapay zeka destekli bir aracı için kullan'ı seçin. Uygulamanız hem yapay zeka ajanı iş akışlarını hem de standart kullanıcı özelliklerini destekliyorsa her biri için ayrı OAuth istemcileri oluşturun. Müşteriyi oluşturduktan sonra bu ayarı değiştiremezsiniz.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
İstemci gizli anahtarı JSON dosyasını indirme
İstemci gizli anahtarı dosyası, uygulamanızın kimlik bilgileri sağlarken referans verebileceği OAuth istemci kimliği kimlik bilgilerinin JSON gösterimidir.
Google API Konsolu'nda Menü > API'ler ve Hizmetler > Kimlik Bilgileri'ne gidin.
OAuth 2.0 İstemci Kimlikleri bölümünde, oluşturduğunuz istemci kimliğini tıklayın.
JSON dosyasını indir'i tıklayın.
Dosyayı
credentials.jsonolarak kaydedin.
Pub/Sub konusu oluşturma ve konuya abone olma
Bu bölümde bir Pub/Sub konusu ve konuya abonelik oluşturacaksınız. Pub/Sub konunuz, Google Workspace aboneliğinizin etkinlikleri aldığı bildirim alma noktası olarak kullanılır.
Pub/Sub konuları oluşturma ve yönetme hakkında daha fazla bilgi edinmek için Pub/Sub belgelerini inceleyin.
Pub/Sub konusu oluşturmak ve konuya abone olmak için:
Google API Konsolu
Google API Konsolu'nda Pub/Sub sayfasına gidin:
Uygulamanızın Cloud projesinin seçili olduğundan emin olun.
Create topic'i (Konu oluştur) tıklayın ve aşağıdakileri yapın:
- Konunuz için bir ad girin (ör.
workspace-events-topic). - Varsayılan abonelik ekle'yi seçili bırakın. Pub/Sub, bu varsayılan aboneliği konunuzun adına benzer şekilde adlandırır (ör.
workspace-events-topic-sub). - İsteğe bağlı: Konunuz için ek özellikleri güncelleyin veya yapılandırın.
- Konunuz için bir ad girin (ör.
Oluştur'u tıklayın. Konunuzun tam adı
projects/PROJECT_ID/topics/TOPIC_IDbiçiminde olur. Bu tam adı sonraki bir adımda kullanın.Konunuzda Pub/Sub mesajları yayınlama erişimi verme:
- Konunuzun sayfasında yan panele gidip İzinler sekmesini açın.
- Ana Hesap Ekle'yi tıklayın.
- Ana hesap ekle alanına, aboneliğinize etkinlikleri ileten Google Workspace uygulamasının hizmet hesabını ekleyin:
- Chat etkinlikleri için
chat-api-push@system.gserviceaccount.com. - Drive etkinlikleri için
drive-api-event-push@system.gserviceaccount.com. - Meet etkinlikleri için
meet-api-event-push@system.gserviceaccount.com.
- Chat etkinlikleri için
- Rol ata menüsünde
Pub/Sub Publisher'yi seçin. - Kaydet'i tıklayın. Konunuzun izinlerinin güncellenmesi birkaç dakika sürebilir.
gcloud
Cloud projenizde aşağıdaki komutu çalıştırarak bir konu oluşturun:
gcloud pubsub topics create TOPIC_IDTOPIC_IDyerine konunuz için benzersiz bir kimlik (ör.workspace-events-topic) girin.Çıkışta, tam konu adı
projects/PROJECT_ID/topics/TOPIC_IDbiçiminde gösterilir. Adı not edin ve PROJECT_ID değerinin uygulamanızın Cloud proje kimliği olduğundan emin olun. Sonraki adımda ve daha sonra Google Workspace aboneliğini oluşturmak için konu adını kullanın.Konunuzda mesaj yayınlama erişimi verme:
gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'Aşağıdakini değiştirin:
TOPIC_NAME: Önceki adımın çıkışı olan tam konu adı.projects/PROJECT_ID/topics/TOPIC_IDolarak biçimlendirildi.GOOGLE_WORKSPACE_APPLICATION: Aboneliğinize etkinlikleri göndermesi gereken Google Workspace uygulaması:- Chat'ten etkinlik almak için aşağıdaki hizmet hesaplarından birini kullanın:
- Chat uygulamaları için (Chat'i genişleten Google Workspace eklentileri olarak oluşturulur) Chat API yapılandırma sayfasındaki hizmet hesabı e-posta adresini kullanın. Daha fazla bilgi için Pub/Sub kullanan bir Google Chat uygulaması oluşturma başlıklı makaleyi inceleyin.
- Eklenti olmayan Chat uygulamaları için
chat-api-push@system.gserviceaccount.comkullanın. Daha fazla bilgi için Pub/Sub kullanan bir Google Chat uygulaması oluşturma başlıklı makaleyi inceleyin.
- Drive'dan etkinlik almak için
drive-api-event-push@system.gserviceaccount.comkullanın. - Meet'ten etkinlik almak için
meet-api-event-push@system.gserviceaccount.comkullanın.
- Chat'ten etkinlik almak için aşağıdaki hizmet hesaplarından birini kullanın:
Konunuzun izinlerinin güncellenmesi birkaç dakika sürebilir.
Konu için bir Pub/Sub aboneliği oluşturun:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAMEAşağıdakini değiştirin:
SUBSCRIPTION_NAME: Aboneliğiniz için bir ad (ör.workspace-events-subscription).TOPIC_NAME: Önceki adımda oluşturduğunuz konunun adı.
Google Workspace kaynağına abone olma
Bu bölümde, etkinliklerini izlemek istediğiniz Google Workspace kaynağına abone olursunuz.
Hedef kaynağı seçme ve tanımlama
Google Workspace aboneliğinde hedef kaynak, etkinlikler için izlediğiniz Google Workspace kaynağıdır. Hedef kaynak, aboneliğin targetResource alanında tam kaynak adı kullanılarak biçimlendirilmiş şekilde temsil edilir. Örneğin, bir Chat alanını (spaces/AAAABBBBBBB) izleyen bir abonelik için targetResource değeri //chat.googleapis.com/spaces/AAAABBBBBBB olur.
Chat için hedef kaynak belirleme
| Hedef kaynak | Biçim | Sınırlamalar |
|---|---|---|
| Boşluk |
Burada SPACE, Chat API |
Aboneliği yetkilendiren Chat kullanıcısı veya Chat uygulaması, Google Workspace ya da Google Hesabı üzerinden alanın üyesi olmalıdır. Desteklenenler: |
| Bir kullanıcının tüm alanları |
|
Abonelik, yalnızca kullanıcının Google Workspace veya Google Hesabı aracılığıyla üye olduğu alanlar için etkinlik alır. Yalnızca kullanıcı kimlik doğrulamasını destekler. |
| Kullanıcı |
Burada USER, Chat API |
Abonelik yalnızca aboneliği yetkilendiren kullanıcıyla ilgili etkinlikleri alır. Bir kullanıcı, diğer kullanıcılar adına bir aboneliği yetkilendiremez. Yalnızca kullanıcı kimlik doğrulamasını destekler. |
| Müşteri ( Geliştirici Önizlemesi) |
CUSTOMER, müşteri kimliğidir. Chat uygulamasının müşteri alanı için |
Abonelik, müşteri alan adı tarafından yönetilen tüm alanlar ve kullanıcılar için etkinlikleri alır. Yalnızca yönetici onayıyla uygulama kimlik doğrulamasını destekler. |
Drive için hedef kaynak belirleme
| Hedef kaynak | Biçim | Sınırlamalar (varsa) |
|---|---|---|
| Dosya |
//drive.googleapis.com/files/FILE
Burada FILE, Drive API |
Aboneliği yetkilendiren kullanıcının, abonelik içindeki dosyada abone olunan etkinlikle ilgili izni olmalıdır. |
| Ortak Drive |
//drive.googleapis.com/drives/DRIVE
Burada DRIVE, Drive API |
Abonelik, yalnızca kullanıcının Google Workspace Hesabı veya Google Hesabı aracılığıyla üye olduğu ortak Drive'daki öğelerle ilgili etkinlikleri alır. |
Meet için hedef kaynak belirleme
| Hedef kaynak | Biçim | Sınırlamalar (varsa) |
|---|---|---|
| Toplantı alanı | //meet.googleapis.com/spaces/SPACE
Burada SPACE, Meet REST API |
|
| Kullanıcı | //cloudidentity.googleapis.com/users/USER
USER, Meet REST API |
Abonelik, kullanıcının toplantı alanının sahibi olduğu tüm toplantı alanlarıyla ilgili etkinlikleri alır. Genellikle toplantı alanının sahibi, toplantı alanıyla ilişkili Google Takvim etkinliğinin düzenleyicisidir. |
Google Workspace aboneliği oluşturma
Abonelik oluşturmak için Google Workspace Events API'nin subscriptions.create yöntemini kullanarak bir Subscription kaynağı oluşturun.
Aşağıdaki alanları belirtin:
targetResource: Önceki bölümde tanımladığınız ve tam kaynak adı kullanılarak biçimlendirilmiş bir Google Workspace.eventTypes: Kaynak hakkında almak istediğiniz bir veya daha fazla etkinlik türü dizisi. Örneğin, uygulamanızın yalnızca bir Chat alanına gönderilen yeni mesajlar hakkında bilgi edinmesi gerekiyorsa uygulamanız yalnızca oluşturulan mesajlarla ilgili etkinliklere abone olabilir.notificationEndpoint: Google Workspace aboneliğinizin etkinlikleri gönderdiği bir bildirim alma noktası. Önceki bölümde oluşturduğunuz Pub/Sub konusunu kullanın.payloadOptions: Etkinlik yüküne ne kadar kaynak verisi ekleneceğini belirleme seçenekleri. Bu yapılandırma, aboneliğinizin geçerlilik süresini etkiler. Daha fazla bilgi için Etkinlik verileri başlıklı makaleyi inceleyin.
Google Workspace aboneliği oluşturmak için:
Apps Komut Dosyası
Apps Komut Dosyası projenizde
createSubscriptionadlı yeni bir komut dosyası oluşturun ve aşağıdaki kodu ekleyin:function createSubscription() { // The Google Workspace resource to monitor for events. const targetResource = 'TARGET_RESOURCE'; // The types of events to receive. const eventTypes = [EVENT_TYPES]; // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. const pubsubTopic = 'TOPIC_NAME'; // Whether to include resource data or not. const resourceData = RESOURCE_DATA; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.create({ targetResource: targetResource, eventTypes: eventTypes, notificationEndpoint: { pubsubTopic: pubsubTopic, }, payloadOptions: { includeResource: resourceData } }); console.log(response); }Aşağıdakini değiştirin:
TARGET_RESOURCE: Abone olduğunuz Google Workspace kaynağı. Tam kaynak adı olarak biçimlendirilir. Örneğin, alan kimliğiAAAABBBBolan bir Chat alanına abone olmak için//chat.googleapis.com/spaces/AAAABBBBkullanın.EVENT_TYPES: Hedef kaynakta abone olmak istediğiniz bir veya daha fazla etkinlik türü.'google.workspace.chat.message.v1.created'gibi bir dize dizisi olarak biçimlendirin.TOPIC_NAME: Cloud projenizde oluşturduğunuz Pub/Sub konusunun tam adı.projects/PROJECT_ID/topics/TOPIC_IDolarak biçimlendirildi.RESOURCE_DATA: Aboneliğin, yükte kaynak verileri içerip içermediğini belirten bir boole değeri:True: Tüm kaynak verilerini içerir. Dahil edilen alanları sınırlamak içinfieldMaskalanını ekleyin ve değiştirilen kaynak için en az bir alan belirtin. Yalnızca Chat kaynaklarına yönelik abonelikler, kaynak verilerinin dahil edilmesini destekler.False: Kaynak verilerini hariç tutar.
Google Workspace aboneliğini oluşturmak için Apps Komut Dosyası projenizde
createSubscriptionişlevini çalıştırın.
Python
Çalışma dizininizde
create_subscription.pyadlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:"""Create subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES) CREDENTIALS = flow.run_local_server() # The Google Workspace resource to monitor for events. TARGET_RESOURCE = 'TARGET_RESOURCE' # The types of events to receive. EVENT_TYPES = [EVENT_TYPES] # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. TOPIC = 'TOPIC_NAME' # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) BODY = { 'target_resource': TARGET_RESOURCE, 'event_types': EVENT_TYPES, 'notification_endpoint': {'pubsub_topic': TOPIC}, 'payload_options': {'include_resource': RESOURCE_DATA}, } response = service.subscriptions().create(body=BODY).execute() print(response)Aşağıdakini değiştirin:
SCOPES: Abonelik için her etkinlik türünü destekleyen bir veya daha fazla OAuth kapsamı. Dize dizisi olarak biçimlendirilir. Birden fazla kapsam listelemek için virgülle ayırın. Örneğin,'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.TARGET_RESOURCE: Abone olduğunuz Google Workspace kaynağı. Tam kaynak adı olarak biçimlendirilir. Örneğin, alan kimliğiAAAABBBBolan bir Chat alanına abone olmak için//chat.googleapis.com/spaces/AAAABBBBkullanın.EVENT_TYPES: Hedef kaynakta abone olmak istediğiniz bir veya daha fazla etkinlik türü.'google.workspace.chat.message.v1.created'gibi bir dize dizisi olarak biçimlendirin.TOPIC_NAME: Cloud projenizde oluşturduğunuz Pub/Sub konusunun tam adı.projects/PROJECT_ID/topics/TOPIC_IDolarak biçimlendirildi.RESOURCE_DATA: Aboneliğin, yükte kaynak verileri içerip içermediğini belirten bir boole değeri:True: Tüm kaynak verilerini içerir. Dahil edilen alanları sınırlamak içinfieldMaskalanını ekleyin ve değiştirilen kaynak için en az bir alan belirtin. Yalnızca Chat kaynaklarına yönelik abonelikler, kaynak verilerinin dahil edilmesini destekler.False: Kaynak verilerini hariç tutar.
Google Workspace aboneliğini oluşturmak için terminalinizde aşağıdaki komutu çalıştırın:
python3 create_subscription.py
Google Workspace Events API, oluşturduğunuz Subscription kaynağının örneğini içeren tamamlanmış bir uzun süreli işlem döndürür.
Google Workspace aboneliğinizi test etme
Google Workspace etkinliklerini aldığınızı test etmek için bir etkinliği tetikleyebilir ve Pub/Sub aboneliğine mesajları çekebilirsiniz.
Google Workspace aboneliğinizi test etmek için:
Google API Konsolu
Google Workspace aboneliğinizin hedef kaynağında bir veya daha fazla etkinlik türünü tetikleyin. Örneğin, bir Chat alanındaki yeni mesajlara abone olduysanız alanda bir mesaj yayınlayın.
Google API Konsolu'nda Pub/Sub sayfasına gidin:
Uygulamanızın Cloud projesinin seçili olduğundan emin olun.
Pub/Sub menüsünde Abonelikler'i tıklayın.
Tabloda konunuzun Pub/Sub aboneliğini bulun ve abonelik adını tıklayın.
Mesajlar sekmesini tıklayın.
Pull'u (Çek) tıklayın. Bir etkinliğin Pub/Sub mesajı oluşturması birkaç dakika sürebilir.
gcloud
Google Workspace aboneliğinizin hedef kaynağında bir veya daha fazla etkinlik türünü tetikleyin. Örneğin, bir Chat alanındaki yeni mesajlara abone olduysanız alanda bir mesaj yayınlayın.
Aşağıdaki komutu çalıştırın:
gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ackAşağıdakini değiştirin:
PUBSUB_SUBSCRIPTION_NAME: Pub/Sub aboneliğinizinprojects/PROJECT_ID/subscriptions/SUBSCRIPTION_IDbiçimindeki tam adı.MESSAGE_COUNT: Almak istediğiniz maksimum Pub/Sub mesajı sayısı.
Bir etkinliğin Pub/Sub mesajı oluşturması birkaç dakika sürebilir.
Tetiklediğiniz her Google Workspace etkinliği için Pub/Sub aboneliğinize etkinliği içeren bir mesaj gönderilir. Ayrıntılar için Etkinlikleri Google Cloud Pub/Sub mesajları olarak alma başlıklı makaleyi inceleyin.
Uygulamanızın etkinlikleri nasıl alacağını yapılandırma
Oluşturduğunuz Pub/Sub aboneliği, çekme tabanlıdır. Pub/Sub aboneliğinizi test ettikten sonra, uygulamanızın etkinlikleri alma şeklini değiştirmek için yayın türünü güncelleyebilirsiniz. Örneğin, Pub/Sub aboneliğini push yayın türüne yapılandırarak uygulamanızın etkinlikleri doğrudan bir uygulama uç noktasına almasını sağlayabilirsiniz.
Pub/Sub aboneliği yapılandırma hakkında bilgi edinmek için Pub/Sub belgelerini inceleyin.
Google Chat uygulaması olarak Chat alanı etkinliklerine abone olma
Chat uygulamasının üye olduğu bir alandan Chat uygulaması olarak Chat etkinliklerine abone olabilirsiniz. Chat uygulamaları, kullanıcı etkinliklerine abone olamaz.
Google Workspace Events API'yi çağıran bir komut dosyası yazma
Uygulama kimlik doğrulaması ve yönetici onayı ile Chat alanı etkinliklerine abonelik oluşturmak için:
- Gerekirse Chat uygulaması oluşturun.
Bir Chat kaynağına abone olma, ancak:
- Kullanıcı kimlik doğrulaması yerine tek seferlik yönetici onayıyla Chat uygulaması olarak kimlik doğrulaması yapın.
Chat uygulamasının Chat etkinliklerine abone olmasına olanak tanıyan yetkilendirme kapsamlarını belirtin. Bu yetkilendirme kapsamları her zaman
chat.appile başlar ve aşağıdakileri içerir:https://www.googleapis.com/auth/chat.app.memberships: Chat alanı üye etkinliklerine abone olun.https://www.googleapis.com/auth/chat.app.memberships.readonly: Chat alanı üye etkinliklerine abone olun.https://www.googleapis.com/auth/chat.app.messages.readonly: Chat alanı mesaj ve tepki etkinliklerine abone olun.https://www.googleapis.com/auth/chat.app.spaces: Chat alanı etkinliklerine abone olun.https://www.googleapis.com/auth/chat.app.spaces.readonly: Chat alanı etkinliklerine abone olun.
Aşağıdaki kod örneği, belirtilen bir Chat alanındaki mesaj etkinliklerine abone olur:
Python
"""Create subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
SCOPES = ['https://www.googleapis.com/auth/chat.app.messages.readonly']
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# The Google Workspace resource to monitor for events.
TARGET_RESOURCE = '//chat.googleapis.com/spaces/SPACE_ID'
# The types of events to receive.
EVENT_TYPES = [
'google.workspace.chat.message.v1.created',
'google.workspace.chat.message.v1.updated',
'google.workspace.chat.message.v1.deleted',
]
# The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
TOPIC = 'TOPIC_NAME'
# Call the Workspace Events API using the service endpoint.
service = build(
'workspaceevents',
'v1',
credentials=CREDENTIALS,
)
BODY = {
'target_resource': TARGET_RESOURCE,
'event_types': EVENT_TYPES,
'notification_endpoint': {'pubsub_topic': TOPIC},
'payload_options': {'include_resource': RESOURCE_DATA},
}
response = service.subscriptions().create(body=BODY).execute()
print(response)
Aşağıdakini değiştirin:
SPACE_ID: Chat API'dekispaces.listyönteminden veya bir alanın URL'sinden alabileceğiniz alan adı.TOPIC_NAME: Cloud projenizde oluşturduğunuz Pub/Sub konusunun tam adı.projects/PROJECT_ID/topics/TOPIC_IDolarak biçimlendirildi.RESOURCE_DATA: Aboneliğin, yükte kaynak verileri içerip içermediğini belirten bir boole değeri:True: Tüm kaynak verilerini içerir. Dahil edilen alanları sınırlamak içinfieldMaskalanını ekleyin ve değiştirilen kaynak için en az bir alan belirtin. Yalnızca Chat kaynaklarına yönelik abonelikler, kaynak verilerinin dahil edilmesini destekler.False: Kaynak verilerini hariç tutar.
Google Chat uygulaması olarak bir Google Workspace kuruluşundaki tüm Chat etkinliklerine abone olma
Müşteri aboneliği, Chat uygulamanızın tüm Google Workspace kuruluşundaki alan etkinliklerini ve kullanıcı etkinliklerini izlemesine olanak tanır.
Harici kuruluşlar tarafından yönetilen alanlardaki etkinlik yayınlama dahil olmak üzere, etkinliklerin müşteri abonelikleri için nasıl yayınlandığı hakkında ayrıntılı bilgi edinmek istiyorsanız Müşteri aboneliği sınırlamaları ve yayınlama davranışları başlıklı makaleyi inceleyin.
Şartlar ve sınırlamalar
- Kimlik doğrulama: Tek seferlik yönetici onayıyla Chat uygulaması olarak kimlik doğrulama
- SKU: Google Workspace kuruluşunun en az bir Enterprise SKU lisansı olmalıdır. Bu şartın Geliştirici Önizleme Programı aşamasında kesin olarak uygulanmadığını ancak gelecekte uygulanacağını (ayrıca duyurulacaktır) unutmayın.
- Benzersizlik: Bir Chat uygulaması, belirli bir Google Workspace kuruluşu için yalnızca bir müşteri aboneliği oluşturabilir. Bir Google Workspace kuruluşunda toplamda en fazla beş müşteri aboneliği (farklı Chat uygulamaları tarafından oluşturulmuş) bulunabilir.
- Kapsamlar: Almak istediğiniz etkinlik türlerine bağlı olarak aşağıdaki kapsamlardan birini veya daha fazlasını gerektirir:
https://www.googleapis.com/auth/chat.app.all.spaces.readonly: Alanlarla ilgili etkinlikleri almak için.https://www.googleapis.com/auth/chat.app.all.memberships.readonly: Üyeliklerle ilgili etkinlikleri almak için.https://www.googleapis.com/auth/chat.app.all.messages.readonly: Mesajlar ve tepkilerle ilgili etkinlikleri almak için.https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly( Geliştirici Önizlemesi): Kullanıcıların okuma durumlarıyla ilgili etkinlikleri almak için.
Müşteri aboneliği oluşturma
Müşteri aboneliği oluşturmak için subscriptions.create yöntemini çağırın.
Aşağıdaki Python kod örneği, müşteri aboneliği oluşturur:
Python
"""Create a customer subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
# Replace with the scopes needed for the event types you want to receive.
SCOPES = ['https://www.googleapis.com/auth/chat.app.all.messages.readonly']
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# Monitor all events for the Google Workspace organization.
TARGET_RESOURCE = '//admin.googleapis.com/customers/CUSTOMER_ID'
# The types of events to receive.
EVENT_TYPES = [
'google.workspace.chat.message.v1.created',
'google.workspace.chat.message.v1.updated',
'google.workspace.chat.message.v1.deleted',
]
# The endpoint to deliver events to.
TOPIC = 'TOPIC_NAME'
# Call the Workspace Events API.
# Note: Use the v1beta endpoint for Developer Preview features.
service = build(
'workspaceevents',
'v1beta',
credentials=CREDENTIALS,
)
BODY = {
'target_resource': TARGET_RESOURCE,
'event_types': EVENT_TYPES,
'notification_endpoint': {'pubsub_topic': TOPIC},
'payload_options': {'include_resource': RESOURCE_DATA},
}
response = service.subscriptions().create(body=BODY).execute()
print(response)
Aşağıdakini değiştirin:
CUSTOMER_ID: Müşteri kimliği. Chat uygulamasının Google Workspace kuruluşu içinmy_customertakma adını da kullanabilirsiniz.TOPIC_NAME: Cloud projenizde oluşturduğunuz Pub/Sub konusunun tam adı.projects/PROJECT_ID/topics/TOPIC_IDolarak biçimlendirildi.RESOURCE_DATA: Aboneliğin, yükte kaynak verileri içerip içermediğini belirten bir boole değeri:True: Tüm kaynak verilerini içerir. Dahil edilen alanları sınırlamak içinfieldMaskalanını ekleyin ve değiştirilen kaynak için en az bir alan belirtin. Yalnızca Chat kaynaklarına yapılan abonelikler, kaynak verilerinin dahil edilmesini destekler.False: Kaynak verilerini hariç tutar.