Genel Bakış
Reseller API, farklı Google Workspace abonelik etkinlikleri hakkında push bildirimleri göndermek için Pub/Sub API'yi kullanır. Örneğin, müşterilerinizin abonelik durumları değiştiğinde bildirim almak için anlık bildirimler ayarlayabilirsiniz.
Ön koşullar
- Google Cloud projeniz için Pub/Sub API'yi etkinleştirin.
- Cloud projenizde hizmet hesabınıza Pub/Sub IAM rolleri atayın.
roles/pubsub.editor
rolünü vermek iyi bir uzlaşma çözümüdür (kolay ve çok geniş kapsamlı değildir). Ancak daha spesifik Pub/Sub izinleri kullanmak isteyebilirsiniz.
Konu oluşturma
Konu oluşturmak için resellernotify.register
yöntemini kullanarak Reseller API'ye kaydolmanız gerekir.
resellernotify.register
yöntemi, parametre olarak bir hizmet hesabı e-posta adresi alır. Yalnızca bu yöntemle yetkilendirilmiş hizmet hesapları yeni oluşturduğunuz konuya abone olabilir.
POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/register
{
"serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}
Başarılı bir yanıt, HTTP 200
durum kodu ve Pub/Sub konu adınızı içeren bir JSON yanıtı döndürür.
Aşağıda örnek bir yanıt verilmiştir:
{
"topicName": "projects/partner-watch/topics/C0abcdefg"
}
Konunuzu kullanmak üzere ek hizmet hesaplarını yetkilendirmek için resellernotify.register
işlevini tekrar çağırabilirsiniz.
Bir hizmet hesabının erişimini iptal etme
Reseller API, resellernotify.unregister
uç noktasını kullanarak hizmet hesaplarının kaydını silme olanağı da sunar:
POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/unregister
{
"serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}
Bir konuya abone olma
Pub/Sub konusunu oluşturduktan sonra, uygulamanızın değişiklik etkinliklerinizi nasıl tüketeceğini ayarlamanız gerekir. Aşağıdaki seçeneklerden birini belirleyin:
- Push aboneliği: HTTP
POST
geri çağırma işlevi sağlarsınız. Pub/Sub, uygulamanızı yeni etkinlikler hakkında bilgilendirmek için bu geri çağırmayı kullanır. - Çekme aboneliği: Uygulamanız, sıraya alınmış tüm değişiklikleri almak için düzenli olarak bir HTTP çağrısı yapar.
Aşağıda, bir konuya abone olma isteği örneği verilmiştir:
PUT https://pubsub.googleapis.com/v1/projects/PROJECT/subscriptions/SUBSCRIPTION_NAME { "topic": "TOPIC_NAME" // Only needed for push configurations "pushConfig": { "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT" }, }
Aşağıdakini değiştirin:
PROJECT
: Google Cloud projeniz.SUBSCRIPTION_NAME
: Aboneliğiniz için tanımlayıcı bir ad.TOPIC_NAME
: Daha önce oluşturduğunuz Pub/Sub konusu.PUSH_NOTIFICATION_ENDPOINT
: Push bildirimi işleyici uç noktanız.
Başarılı bir yanıt, HTTP 200
durum kodu döndürür. Aşağıda örnek bir yanıt verilmiştir:
{ "name": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME", "topic": "TOPIC_NAME", "pushConfig": { "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT" }, "ackDeadlineSeconds": 10 }
Bildirim biçimleri
Aşağıda örnek bir Pub/Sub bildirimi verilmiştir. İleti verileri, base64 kodlu bir JSON dizesi olarak iletilir.
{ "message": { "attributes": {}, "data": "eyJza3VfaWQiOiAiR29vZ2xlLUFwcHMtVW5saW1pdGVkIiwgImV2ZW50X3R5cGUiOiAiU1VCU0NSSVBUSU9OX0NBTkNFTExFRCIsICJjdXN0b21lcl9kb21haW5fbmFtZSI6ICJkb21haW4uY29tIiwgInN1YnNjcmlwdGlvbl9pZCI6ICIxMjM0NTY3IiwgImN1c3RvbWVyX2lkIjogIkMwYWJjZGVmIiwgIm1lc3NhZ2VfaWQiOiAiODY3NTMwOSIsICJwdWJsaXNoX3RpbWUiOiB7InNlY29uZHMiOiAxNDU3NzMxODQ2LCAibmFub3MiOiAzNDkwMDAwMDB9LCAicmVzZWxsZXJfY3VzdG9tZXJfaWQiOiAiQzByZXNlbGxlciJ9", "message_id": 1234567891012131 }, "subscription": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME" }
Aşağıda, kod çözme işleminden sonraki message.data
nesnesi örneği verilmiştir:
{
"customer_id": "C0abcdef",
"customer_domain_name": "domain.com",
"event_type": "SUBSCRIPTION_CANCELLED",
"sku_id": "Google-Apps-Unlimited",
"subscription_id": "1234567",
// Optional fields depended on event_type
"subscription_suspension_reasons": [],
"subscription_cancellation_reason": "REASON"
}
Etkinlik türleri
Aşağıdaki listede olası tüm etkinlik türleri yer almaktadır:
NEW_SUBSCRIPTION_CREATED
: Yeni bir abonelik oluşturuldu.SUBSCRIPTION_TRIAL_ENDED
: Bir aboneliğin deneme süresi sona erdi.PRICE_PLAN_SWITCHED
: Müşteri, esnek plandan yıllık plana geçti. Müşteri, yenileme kapsamında taahhütlü bir plandan esnek plana geçerse bu etkinlik tetiklenmez.COMMITMENT_CHANGED
: Yıllık taahhüt artırıldı veya azaltıldı.SUBSCRIPTION_RENEWED
: Yıllık abonelik yenilendi.SUBSCRIPTION_SUSPENDED
: Abonelik askıya alındı.subscription_suspension_reasons
alanına bakın.SUBSCRIPTION_SUSPENSION_REVOKED
: Daha önce askıya alınmış bir aboneliğin askıya alınma durumu iptal edildi.SUBSCRIPTION_CANCELLED
: Abonelik iptal edildi.subscription_cancellation_reason
alanına bakın. Ayrıca transferleri tespit etmek için de kullanılabilir.SUBSCRIPTION_CONVERTED
: Abonelik dönüştürüldü. Bu etkinliğe ilişkin bazı örnekler aşağıda verilmiştir:- Doğrudan aboneliği bayi aboneliğine dönüştürme
- Ücretli aboneliği ek süre teklifine dönüştürme
- Online aboneliği çevrimdışı aboneliğe dönüştürme
SUBSCRIPTION_UPGRADE
: Abonelik SKU'su yükseltildi. Örneğin, abonelik Google Workspace Business Starter'dan Business Standard'a yükseltilmiştir.SUBSCRIPTION_DOWNGRADE
: Abonelik SKU'su düşürüldü. Örneğin, abonelik Google Workspace Business Standard'dan Business Starter'a düşürülmüş olabilir.LICENSE_ASSIGNMENT_CHANGED
: Lisans bir kullanıcıya atanmış veya kullanıcıdan iptal edilmiş. Bu etkinliği, esnek aboneliklerdeki koltuk sayısı değişikliklerini reaktif olarak izlemek için kullanabilirsiniz.
Abonelik iptali nedenleri
Abonelik iptali nedeni, event_type
olduğunda SUBSCRIPTION_CANCELLED
. Olası iptal nedenleri şunlardır:
TRANSFERRED_OUT
: Müşteri, doğrudan faturalandırmaya veya başka bir bayiye aktarılmıştır.PURCHASE_OF_SUBSUMING_SKU
: Müşteri, başka bir SKU'yu geçersiz kılan bir SKU'ya yükseltme yaptı. Örneğin, Google Workspace Business Starter ve Google Apps Kasası kullanan bir müşteri Google Workspace Business Plus'a yükseltme yaparsa Apps Kasası aboneliği, Google Workspace Business Plus'a dahil olduğu için kapsanır.RESELLER_INITIATED
: Bayi, aboneliği iptal etti.OTHER
: Abonelik, listelenenler dışında bir nedenle iptal edildi.
Aboneliğin askıya alınma nedenleri
Aboneliğin askıya alınma nedeni, event_type
olduğunda doldurulur.
SUBSCRIPTION_SUSPENDED
. Askıya alınmanın olası nedenleri şunlardır:
PENDING_TOS_ACCEPTANCE
: Müşteri, Google Workspace Resold Hizmet Şartları'nı kabul etmedi ve oturum açmadı.RENEWAL_WITH_TYPE_CANCEL
: Müşterinin taahhüdü sona erdi ve hizmeti dönem sonunda iptal edildi.RESELLER_INITIATED
: Bayi, aboneliği manuel olarak askıya aldı.TRIAL_ENDED
: Müşterinin deneme süresi sona erdi ve müşteri deneme sürümü olmayan bir plan seçmedi.OTHER
: Müşteri, Google'ın dahili bir nedeni (ör. kötüye kullanım) nedeniyle askıya alınmıştır.
Pub/Sub sınırlamaları
Push bildirimlerinin sırası garanti edilmez. İletiler birden fazla kez teslim edilebilir ve aşırı durumlarda hiç teslim edilmeyebilir. Mevcut durumu çekmek için değiştirilen tüm aboneliklerde reseller.subscriptions.get
kullanmanızı öneririz.