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

Bu sayfada, hataları çözerek veya gidererek ve subscriptions.reactivate() yöntemini çağırarak askıya alınmış bir Google Workspace aboneliğini nasıl yeniden etkinleştireceğiniz açıklanmaktadır.

Aboneliğin etkinlik almasını engelleyen bir hata oluştuğunda Google Workspace abonelikleri askıya alınır. Örneğin, hedef kaynağı veya bildirim uç noktası bulunamayan abonelikler askıya alınır. Abonelikle ilgili hataları çözdükten sonra, etkinlikleri tekrar almaya başlamak için aboneliği yeniden etkinleştirebilirsiniz.

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 alamayabilirsiniz.
  • 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ı olduğunda bildirim alırsınız. Google Cloud Pub/Sub konularına yönelik teslim hatalarını izleme hakkında bilgi edinmek için Mesaj hatalarını işleme bölümüne bakın.

Yeniden etkinleştirilen aboneliklerin orijinal son kullanma tarihleri korunur. Bir aboneliğin sona erme süresini uzatmak için Aboneliği güncelleme veya yenileme başlıklı makaleyi inceleyin.

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 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:
    • "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 son 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
      

Hataları belirleme ve çözme

Bir aboneliğin hatasını belirlemek için aboneliğin suspensionReason alanını inceleyin. Bu alanı, askıya almayla ilgili bir yaşam döngüsü etkinliği aldığınızda veya abonelikle ilgili tüm alanları incelemek için subscriptions.get() yöntemini kullanarak bulabilirsiniz.

Aşağıdaki tabloda, abonelikle ilgili olası hatalar ve mümkünse 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 Sorunu çözme yöntemleri

USER_SCOPE_REVOKED

Yetki veren kullanıcı, abonelik için gereken bir veya daha fazla OAuth kapsamının verilmesini iptal etti. Başka bir erişim jetonu alın. Ayrıntılar için Google Yetkilendirme Sunucusu'ndan 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, aboneliği orijinal hedef kaynağı olmadan yeniden etkinleştiremeyeceğiniz için herhangi bir işlem yapmanız gerekmez.

USER_AUTHORIZATION_FAILURE

Yetki veren kullanıcının abonelik kaynağına erişimi artık yoktur. Herhangi bir işlem yapmanız gerekmez. Aboneliği yeniden etkinleştiren kullanıcı hedef kaynağa erişemediğinden aboneliği yeniden etkinleştiremezsiniz.

ENDPOINT_PERMISSION_DENIED

Google Workspace uygulamasının, bildirim uç noktanıza etkinlik yayınlama erişimi yoktur. Etkinlik yayınlayan Google Workspace uygulaması için hizmet hesabına erişim izni verin.

Google Chat etkinlikleri için hizmet hesabı chat-api-push@system.gserviceaccount.com'dır. Google Meet etkinlikleri için hizmet hesabı meet-api-event-push@system.gserviceaccount.com'tür.

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

ENDPOINT_NOT_FOUND

Bildirim uç noktası mevcut değil veya bulunamıyor. Uç noktanın hâlâ etkin ve çalıştığından emin olun. Pub/Sub konularıyla ilgili sorunları gidermek için sorun giderme dokümanlarına bakın.

ENDPOINT_RESOURCE_EXHAUSTED

Bildirim uç noktası, yeterli kota olmadığı veya hız sınırına ulaşıldığı için etkinlikleri alamadı. Kota artışı istemek.

Aboneliği yeniden etkinleştirme

Aboneliğinizi askıya alan hatayı çözdükten sonra, aboneliğin tekrar etkinlik almasını sağlamak için reactivate() yöntemini kullanabilirsiniz. Yöntem, tüm hataların çözülüp çözülmediğini kontrol eder ve aboneliğinizin SUSPENDED olan state alanını ACTIVE olarak değiştirir.

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

Apps Komut Dosyası

  1. Apps Komut Dosyası projenizde reactivateSubscription adlı yeni bir komut dosyası 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 temsil edilen kaynak adının kimliği. Örneğin, kaynak adı subscriptions/subscription-123 ise subscription-123 değerini kullanın.
  2. Google Workspace aboneliğini yeniden etkinleştirmek için Apps Komut Dosyası projenizdeki 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('client_secrets.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 temsil edilen kaynak adının kimliği. Örneğin, kaynak adı subscriptions/subscription-123 ise subscription-123 değerini kullanın.
  2. Çalışma dizininizde OAuth istemci kimliği kimlik bilgilerinizi kaydettiğinizden ve dosyayı client_secrets.json olarak adlandırdığınızdan emin olun. Kod örneği, Google Workspace ile kimlik doğrulamak ve kullanıcı kimlik bilgilerini almak için bu JSON dosyasını kullanır. Talimatlar için OAuth istemci kimliği kimlik bilgilerini oluşturma başlıklı makaleyi inceleyin.

  3. Google Workspace aboneliğini yeniden etkinleştirmek için terminalinizde aşağıdaki komutu ç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 diğer hataları gidermek için aşağıdaki bölüme bakın.

Birden fazla hatayla ilgili sorunları giderme

Aboneliği askıya alan 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.

Diğer hataları tespit etmek için başarısız istekteki çıkışı inceleyin. Çıkışta bulunan hatalar varsa.

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