Hataları çözme ve Google Workspace aboneliğini yeniden etkinleştirme

Bu sayfada, hataları çözerek veya hatalarla ilgili sorunları gidererek ve subscriptions.reactivate yöntemini çağırarak askıya alınmış bir Google Workspace aboneliğinin nasıl yeniden etkinleştirileceği açıklanmaktadır.

Bir hata, aboneliğin etkinlik almasını engellediğinde Google Workspace abonelikleri askıya alınır. Örneğin, hedef kaynak veya bildirim uç noktası bulunamadığında abonelik askıya alınır. Abonelikle ilgili hataları düzelttikten sonra aboneliği yeniden etkinleştirerek etkinlikleri tekrar almaya başlayabilirsiniz.

Askıya alınmış bir abonelik hakkında aşağıdaki yöntemlerle bilgi edinebilirsiniz:

  • Uygulamanız, askıya alma işlemiyle ilgili bir yaşam döngüsü etkinliği alır. Aboneliğiniz, uç noktasıyla ilgili bir hata nedeniyle askıya alınırsa yaşam döngüsü etkinliği almayabilirsiniz.
  • Aboneliğin state alanının SUSPENDED olarak ayarlanıp ayarlanmadığını görmek için subscriptions.get veya subscriptions.list yöntemlerini kullanırsınız.
  • Bildirim uç noktanıza teslimat hatasıyla ilgili bildirim gönderilir. Google Cloud Pub/Sub konularına teslimat hatalarını izleme hakkında bilgi edinmek için İleti hatalarını işleme başlıklı makaleyi inceleyin.

Yeniden etkinleştirilen aboneliklerin orijinal son kullanma tarihi korunur. Aboneliğin geçerlilik süresini uzatmak için Google Workspace aboneliğini güncelleme veya yenileme başlıklı makaleyi inceleyin.

Apps Komut Dosyası

  • 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ı Apps Komut Dosyası projenizdeki appsscript.json dosyasına da eklemeniz gerekir. Örneğin:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • 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ı. 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
      

Hataları tanımlama ve çözme

Bir abonelikteki hatayı belirlemek için aboneliğin suspensionReason alanını inceleyin. Bu alanı, askıya alma ile ilgili bir yaşam döngüsü etkinliği aldığınızda veya subscriptions.get yöntemini kullanarak aboneliğin tüm alanlarını incelediğinizde bulabilirsiniz.

Aşağıdaki tabloda, abonelikle ilgili olası hatalar ve mümkün olduğunda bu hataların nasıl çözüleceği gösterilmektedir. Hatayı gideremezseniz aboneliği silebilir veya süresinin dolmasını bekleyebilirsiniz. Google Workspace Events API, süresi dolmuş abonelikleri otomatik olarak siler.

Hata Açıklama Çözüm yolları

USER_SCOPE_REVOKED

Yetkilendiren kullanıcı, abonelik için gerekli olan bir veya daha fazla OAuth kapsamı iznini iptal etti. Başka bir erişim jetonu alın. Ayrıntılar için Google yetkilendirme sunucusundan erişim jetonu alma başlıklı makaleyi inceleyin.

RESOURCE_DELETED

Aboneliğin hedef kaynağı silinir. Kaynak geri yüklenirse reactivate yöntemini çağırın. Aksi takdirde, orijinal hedef kaynağı olmadan aboneliği yeniden etkinleştiremeyeceğiniz için herhangi bir işlem yapmanız gerekmez.

USER_AUTHORIZATION_FAILURE

Yetki veren kullanıcı artık abonelikle ilgili kaynağa erişemiyor. Herhangi bir işlem yapmanız gerekmez. Yetki veren kullanıcı hedef kaynağa erişemediği için aboneliği yeniden etkinleştiremezsiniz.

ENDPOINT_PERMISSION_DENIED

Google Workspace uygulaması, etkinlikleri bildirim uç noktanıza iletmek için erişime sahip değil. Etkinlikleri sağlayan Google Workspace uygulaması için hizmet hesabına erişim izni verin.

Hizmet hesapları:
  • Google Chat etkinlikleri: chat-api-push@system.gserviceaccount.com
  • Google Drive etkinlikleri: drive-api-event-push@system.gserviceaccount.com
  • Google Meet etkinlikleri: meet-api-event-push@system.gserviceaccount.com

Pub/Sub konuları için hizmet hesabına Pub/Sub Yayıncısı (roles/pubsub.publisher) ) rolünü verin.

ENDPOINT_NOT_FOUND

Bildirim uç noktası mevcut değil veya bulunamıyor. Uç noktanın hâlâ etkin ve çalışır durumda olduğunu kontrol edin. Pub/Sub konularıyla ilgili sorunları gidermek için Sorun giderme belgelerine bakın.

ENDPOINT_RESOURCE_EXHAUSTED

Bildirim uç noktası, kota yetersizliği veya hız sınırlamasına ulaşılması nedeniyle etkinlikleri alamadı. Kota artışı istemek.

Aboneliği yeniden etkinleştirme

Aboneliğinizin askıya alınmasına neden olan hatayı çözdükten sonra, aboneliğin tekrar etkinlik almasına izin vermek için reactivate yöntemini kullanabilirsiniz. Bu yöntem, tüm hataların çözüldüğünü kontrol eder ve aboneliğinizin state alanını SUSPENDED olarak değiştirir.ACTIVE

Google Workspace aboneliğini yeniden etkinleştirmek için:

Apps Komut Dosyası

  1. Apps Komut Dosyası projenizde reactivateSubscription adlı yeni bir komut dosyası oluşturun ve aşağıdaki kodu ekleyin:

    function reactivateSubscription() {
      // The name of the subscription to reactivate.
      const name = 'subscriptions/SUBSCRIPTION_ID';
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.reactivate({}, name);
      console.log(response);
    }
    

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

    • SUBSCRIPTION_ID: Aboneliğin kimliği. Kimliği almak için aşağıdakilerden herhangi birini kullanabilirsiniz:
      • uid alanının değeri.
      • name alanında gösterilen kaynak adının kimliği. Örneğin, kaynak adı subscriptions/subscription-123 ise subscription-123 kullanın.
  2. Google Workspace aboneliğini yeniden etkinleştirmek için Apps Komut Dosyası projenizde reactivateSubscription işlevini çalıştırın.

Python

  1. Çalışma dizininizde reactivate_subscription.py adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:

    """Reactivate 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()
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    NAME = 'subscriptions/SUBSCRIPTION_ID'
    response = service.subscriptions().reactivate(name=NAME).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'.
    • SUBSCRIPTION_ID: Aboneliğin kimliği. Kimliği almak için aşağıdakilerden herhangi birini kullanabilirsiniz:
      • uid alanının değeri.
      • name alanında gösterilen kaynak adının kimliği. Örneğin, kaynak adı subscriptions/subscription-123 ise subscription-123 kullanın.
  2. Çalışma dizininizde OAuth istemci kimliği kimlik bilgilerini 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.

  3. Google Workspace aboneliğini yeniden etkinleştirmek için terminalinizde aşağıdakileri çalıştırın:

    python3 reactivate_subscription.py
Google Workspace Events API, Subscription kaynağının örneğini içeren bir uzun süreli işlem döndürür.

İstek başarısız olursa ek hataları gidermek için aşağıdaki bölüme bakın.

Birden fazla hatayı giderme

Aboneliğin askıya alınmasına neden olan hatayı çözdüyseniz ve reactivate yöntemi başarısız olursa aboneliğiniz askıya alındıktan sonra başka bir hata oluşmuş olabilir.

Ek hataları belirlemek için başarısız olan isteğin çıktısını inceleyin. Çıkışta, hâlâ mevcut olan hatalar bulunur.

Aboneliğinizde birden fazla hata olduğunda suspensionReason alanının değeri her zaman aboneliğinizi askıya alan orijinal hatayı kullanır.