Google Workspace aboneliği oluşturma

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:

  1. Ortamınızı ayarlayın.
  2. 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.
  3. Subscription kaynağında Google Workspace Events API'nin create yöntemini çağırın.
  4. Pub/Sub konunuzun abone olduğunuz etkinlikleri aldığını doğrulamak için Google Workspace aboneliğinizi test edin.
  5. İ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ı

  • 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.json dosyasına da eklemeniz gerekir. Örneğin, chat.messages kapsamını belirttiyseniz aşağıdakileri ekleyin:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • Google Workspace Events gelişmiş hizmetini etkinleştirin.

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
      

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:

API'leri etkinleştirme

gcloud

  1. Çalışma dizininizde Google Hesabınızda oturum açın:

    gcloud auth login
  2. Projenizi uygulamanızın Cloud projesine ayarlayın:

    gcloud config set project PROJECT_ID

    PROJECT_ID yerine uygulamanızın Cloud projesinin proje kimliğini yazın.

  3. 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ı

  1. Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.

    Müşteriler'e gidin

  2. Create Client'ı (İstemci Oluştur) tıklayın.
  3. Uygulama türü > Web uygulaması'nı tıklayın.
  4. Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
  5. 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.
  6. İ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.
  7. 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

  1. Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.

    Müşteriler'e gidin

  2. Create Client'ı (İstemci Oluştur) tıklayın.
  3. Uygulama türü > Android'i tıklayın.
  4. Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
  5. Paket adı alanına AndroidManifest.xml dosyanızdaki paket adını girin.
  6. SHA-1 sertifika parmak izi alanına oluşturduğunuz SHA-1 sertifika parmak izinizi girin.
  7. İ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.
  8. 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

  1. Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.

    Müşteriler'e gidin

  2. Create Client'ı (İstemci Oluştur) tıklayın.
  3. Uygulama türü > iOS'i tıklayın.
  4. Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
  5. Paket kimliği alanına, uygulamanın Info.plist dosyasında listelenen paket kimliğini girin.
  6. İsteğe bağlı: Uygulamanız Apple App Store'da görünüyorsa App Store kimliğini girin.
  7. İsteğe bağlı: Ekip Kimliği alanına, Apple tarafından oluşturulan ve ekibinize atanan benzersiz 10 karakterlik dizeyi girin.
  8. İ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.
  9. 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ı

  1. Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.

    Müşteriler'e gidin

  2. Create Client'ı (İstemci Oluştur) tıklayın.
  3. Uygulama türü > Chrome Uzantısı'nı tıklayın.
  4. Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
  5. Öğ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.
  6. İ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.
  7. 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ı

  1. Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.

    Müşteriler'e gidin

  2. Create Client'ı (İstemci Oluştur) tıklayın.
  3. Uygulama türü > Masaüstü uygulaması'nı tıklayın.
  4. Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
  5. İ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.
  6. 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ı

  1. Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.

    Müşteriler'e gidin

  2. Create Client'ı (İstemci Oluştur) tıklayın.
  3. Uygulama türü > TV'ler ve Sınırlı Giriş cihazları'nı tıklayın.
  4. Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
  5. İ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.
  6. 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)

  1. Google API Konsolu'nda Menü > > İstemciler'e gidin.

    Müşteriler'e gidin

  2. Create Client'ı (İstemci Oluştur) tıklayın.
  3. Uygulama türü > Evrensel Windows Platformu (UWP) seçeneğini tıklayın.
  4. "Ad" alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google API Konsolu'nda gösterilir.
  5. "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.
  6. İ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.
  7. 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.

  1. Google API Konsolu'nda Menü > API'ler ve Hizmetler > Kimlik Bilgileri'ne gidin.

    Kimlik Bilgileri'ne gidin

  2. OAuth 2.0 İstemci Kimlikleri bölümünde, oluşturduğunuz istemci kimliğini tıklayın.

  3. JSON dosyasını indir'i tıklayın.

  4. Dosyayı credentials.json olarak 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

  1. Google API Konsolu'nda Pub/Sub sayfasına gidin:

    Google Cloud Pub/Sub'a git

    Uygulamanızın Cloud projesinin seçili olduğundan emin olun.

  2. Create topic'i (Konu oluştur) tıklayın ve aşağıdakileri yapın:

    1. Konunuz için bir ad girin (ör. workspace-events-topic).
    2. 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).
    3. İsteğe bağlı: Konunuz için ek özellikleri güncelleyin veya yapılandırın.
  3. Oluştur'u tıklayın. Konunuzun tam adı projects/PROJECT_ID/topics/TOPIC_ID biçiminde olur. Bu tam adı sonraki bir adımda kullanın.

  4. Konunuzda Pub/Sub mesajları yayınlama erişimi verme:

    1. Konunuzun sayfasında yan panele gidip İzinler sekmesini açın.
    2. Ana Hesap Ekle'yi tıklayın.
    3. Ana hesap ekle alanına, aboneliğinize etkinlikleri ileten Google Workspace uygulamasının hizmet hesabını ekleyin:
      1. Chat etkinlikleri için chat-api-push@system.gserviceaccount.com.
      2. Drive etkinlikleri için drive-api-event-push@system.gserviceaccount.com.
      3. Meet etkinlikleri için meet-api-event-push@system.gserviceaccount.com.
    4. Rol ata menüsünde Pub/Sub Publisher'yi seçin.
    5. Kaydet'i tıklayın. Konunuzun izinlerinin güncellenmesi birkaç dakika sürebilir.

gcloud

  1. Cloud projenizde aşağıdaki komutu çalıştırarak bir konu oluşturun:

    gcloud pubsub topics create TOPIC_ID

    TOPIC_ID yerine konunuz için benzersiz bir kimlik (ör. workspace-events-topic) girin.

    Çıkışta, tam konu adı projects/PROJECT_ID/topics/TOPIC_ID biç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.

  2. 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_ID olarak 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:
      • Drive'dan etkinlik almak için drive-api-event-push@system.gserviceaccount.com kullanın.
      • Meet'ten etkinlik almak için meet-api-event-push@system.gserviceaccount.com kullanın.

    Konunuzun izinlerinin güncellenmesi birkaç dakika sürebilir.

  3. Konu için bir Pub/Sub aboneliği oluşturun:

     gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

    Aş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

//chat.googleapis.com/spaces/SPACE

Burada SPACE, Chat API space kaynağının kaynak adındaki kimliktir. Kimliği, alanın URL'sinden veya spaces.list() yöntemini kullanarak alabilirsiniz.

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ı

//chat.googleapis.com/spaces/-

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ı

//cloudidentity.googleapis.com/users/USER

Burada USER, Chat API user kaynağının kaynak adındaki kimliktir. Ayrıntılar için Google Chat kullanıcılarını tanımlama ve belirtme başlıklı makaleyi inceleyin.

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)

//admin.googleapis.com/customers/CUSTOMER

CUSTOMER, müşteri kimliğidir. Chat uygulamasının müşteri alanı için my_customer takma adını da kullanabilirsiniz.

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 files kaynağının kaynak adındaki kimliktir. Kimliği, dosyanın URL'sinden veya files.list yöntemini kullanarak alabilirsiniz.

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 drives kaynağının kaynak adındaki kimliktir. Kimliği, Drive'ın URL'sinden veya drives.list yöntemini kullanarak alabilirsiniz.

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 spaces kaynağının kaynak adındaki kimliktir. Ayrıntılı bilgi için Meet, toplantı alanlarını nasıl tanımlar? başlıklı makaleyi inceleyin.

Kullanıcı //cloudidentity.googleapis.com/users/USER

USER, Meet REST API participants kaynağının signedinUser.user alanındaki kimliktir. Ayrıntılı bilgi için Katılımcılarla çalışma başlıklı makaleyi inceleyin.

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ı

  1. Apps Komut Dosyası projenizde createSubscription adlı 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ği AAAABBBB olan bir Chat alanına abone olmak için //chat.googleapis.com/spaces/AAAABBBB kullanı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_ID olarak 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çin fieldMask alanı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.
  2. Google Workspace aboneliğini oluşturmak için Apps Komut Dosyası projenizde createSubscription işlevini çalıştırın.

Python

  1. Çalışma dizininizde create_subscription.py adlı 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ği AAAABBBB olan bir Chat alanına abone olmak için //chat.googleapis.com/spaces/AAAABBBB kullanı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_ID olarak 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çin fieldMask alanı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.
  2. 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

  1. 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.

  2. Google API Konsolu'nda Pub/Sub sayfasına gidin:

    Pub/Sub'a git

    Uygulamanızın Cloud projesinin seçili olduğundan emin olun.

  3. Pub/Sub menüsünde Abonelikler'i tıklayın.

  4. Tabloda konunuzun Pub/Sub aboneliğini bulun ve abonelik adını tıklayın.

  5. Mesajlar sekmesini tıklayın.

  6. Pull'u (Çek) tıklayın. Bir etkinliğin Pub/Sub mesajı oluşturması birkaç dakika sürebilir.

gcloud

  1. 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.

  2. Aşağıdaki komutu çalıştırın:

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    Aşağıdakini değiştirin:

    • PUBSUB_SUBSCRIPTION_NAME: Pub/Sub aboneliğinizin projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID biç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:

  1. Gerekirse Chat uygulaması oluşturun.
  2. Bir Chat kaynağına abone olma, ancak:

    1. Kullanıcı kimlik doğrulaması yerine tek seferlik yönetici onayıyla Chat uygulaması olarak kimlik doğrulaması yapın.
    2. Chat uygulamasının Chat etkinliklerine abone olmasına olanak tanıyan yetkilendirme kapsamlarını belirtin. Bu yetkilendirme kapsamları her zaman chat.app ile 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'deki spaces.list yö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_ID olarak 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çin fieldMask alanı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çin my_customer takma adını da kullanabilirsiniz.
  • TOPIC_NAME: Cloud projenizde oluşturduğunuz Pub/Sub konusunun tam adı. projects/PROJECT_ID/topics/TOPIC_ID olarak 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çin fieldMask alanı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.