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

Bu sayfada, hataları gidererek ya da sorun 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 etkinlikleri almasını engelleyen bir hata olduğunda Google Workspace abonelikleri askıya alınır. Örneğin, hedef kaynağı veya bildirim uç noktası bulunamadığında bir abonelik 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 şekillerde 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ındıysa bir yaşam döngüsü olayı 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 teslim hatası yapıldığına dair 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 göz atın.

Yeniden etkinleştirilen aboneliklerin orijinal son kullanma tarihi korunur. Aboneliğin geçerlilik süresini uzatmak için Aboneliği 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ı. Bunları yüklemek veya güncellemek için komut satırı arayüzünüzde şu komutu çalıştırın:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      

Hataları belirleme ve çözme

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

Aşağıdaki tabloda bir abonelikle ilgili olası hatalar ve mümkün olduğunda hataların nasıl giderileceği gösterilmektedir. Hatayı gideremezseniz aboneliği silebilir veya süresinin dolmasını bekleyebilirsiniz. Google Workspace Etkinlikleri API'si, süresi dolan abonelikleri otomatik olarak siler.

Hata Açıklama Sorunu giderme yöntemleri

USER_SCOPE_REVOKED

Yetki veren kullanıcı, abonelik için gerekli olan 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 bölümüne bakın.

RESOURCE_DELETED

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

USER_AUTHORIZATION_FAILURE

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

ENDPOINT_PERMISSION_DENIED

Google Workspace uygulamasının bildirim uç noktanıza etkinlik gönderme erişimi yok. Etkinlikleri gönderen Google Workspace uygulamasının hizmet hesabına erişim izni verin.

Google Chat etkinlikleri için hizmet hesabı chat-api-push@system.gserviceaccount.com şeklindedir. Google Meet etkinlikleri için hizmet hesabı meet-api-event-push@system.gserviceaccount.com şeklindedir.

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

ENDPOINT_NOT_FOUND

Bildirim uç noktası yok veya bulunamıyor. Uç noktanın hâlâ etkin ve çalışır durumda olduğundan emin olun. Pub/Sub konularıyla ilgili sorunları gidermek için Sorun giderme belgelerine bakın.

ENDPOINT_RESOURCE_EXHAUSTED

Bildirim uç noktası, yetersiz kota veya hız sınırına ulaşılması nedeniyle etkinlikleri alamadı. Kota artışı istemek.

Aboneliği yeniden etkinleştirme

Aboneliğinizin askıya alınmasına neden olan hatayı giderdikten sonra aboneliğin etkinlikleri tekrar almasına izin vermek için reactivate() yöntemini kullanabilirsiniz. Bu yöntem, tüm hataların giderilip giderilmediğini kontrol eder ve aboneliğinizin SUSPENDED olan state alanını ACTIVE olarak değiştirir.

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

Apps Komut Dosyası

  1. Apps Komut Dosyası projenizde, reactivateSubscription adında 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 temsil edilen 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 şu 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: Abonelikte her etkinlik türünü destekleyen bir veya daha fazla OAuth kapsamı. Dize dizisi olarak biçimlendirilir. Birden çok kapsamı listelemek için bunları 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 kullanın.
  2. Çalışma dizininizde OAuth istemci kimliği kimlik bilgilerinizi depoladığınızdan 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 bilgileri oluşturma başlıklı makaleye göz atın.

  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 Etkinlikleri API, Subscription kaynağının örneğini içeren uzun süreli bir 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 çok hatayı giderme

Aboneliğin askıya alınmasına neden olan hatayı düzelttiyseniz ve reactivate() yöntemi başarısız olduysa aboneliğiniz askıya alındıktan sonra başka bir hata oluşmuş olabilir.

Diğer hataları belirlemek için başarısız isteğin çıkışını inceleyin. Çıkış, hâlâ mevcut olan tüm hataları içerir.

Aboneliğinizde birden fazla hata varsa suspensionReason alanındaki değerde her zaman aboneliğinizi askıya alan orijinal hata kullanılır.