Omówienie
Interfejs Seller API używa interfejsu Pub/Sub API do dostarczania komunikatów push powiadomienia o różnych wersjach Google Workspace zdarzenia subskrypcji. Możesz na przykład skonfigurować push, powiadomienia, aby otrzymywać powiadomienia o stany subskrypcji .
Wymagania wstępne
- włączyć interfejs Pub/Sub API, do swojego projektu Google Cloud.
- Przypisz do konta usługi role uprawnień Pub/Sub
Projekt w chmurze. Przyznanie parametru
Rola w
roles/pubsub.editor
to dobry kompromis (łatwy i łatwy w obsłudze), ale możesz też użyć bardziej szczegółowych Uprawnienia Pub/Sub.
Tworzenie tematu
Aby utworzyć temat, musisz zarejestrować się przy użyciu interfejsu Seller API
za pomocą funkcji
Metoda resellernotify.register
.
Metoda resellernotify.register
wykorzystuje adres e-mail konta usługi jako
. Tylko konta usługi autoryzowane za pomocą tej metody mogą subskrybować Twój
w nowo utworzonym temacie.
POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/register
{
"serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}
Pomyślna odpowiedź zwraca kod stanu HTTP 200
.
i odpowiedź JSON z nazwą tematu Pub/Sub.
Oto przykładowa odpowiedź:
{
"topicName": "projects/partner-watch/topics/C0abcdefg"
}
Aby autoryzować dodatkowe konta usługi do korzystania z tematu, możesz zadzwonić
resellernotify.register
.
Unieważnianie dostępu do konta usługi
Interfejs Seller API umożliwia też wyrejestrowywanie kont usługi przez
przy użyciu punktu końcowego resellernotify.unregister
:
POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/unregister
{
"serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}
Subskrybowanie tematu
Po utworzeniu tematu Pub/Sub musisz skonfigurować sposób pobiera zdarzenia zmiany. Wybierz jedną z tych opcji:
- Subskrypcja push: podajesz wywołanie zwrotne HTTP
POST
. Zastosowania Pub/Sub to wywołanie zwrotne, aby powiadamiać aplikację o nowych zdarzeniach. - Pull subscription: aplikacja okresowo wysyła wywołanie HTTP do pobierz wszystkie zmiany w kolejce.
Oto przykład żądania zasubskrybowania tematu:
PUT https://pubsub.googleapis.com/v1/projects/PROJECT/subscriptions/SUBSCRIPTION_NAME { "topic": "TOPIC_NAME" // Only needed for push configurations "pushConfig": { "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT" }, }
Zastąp następujące elementy:
PROJECT
: Twój projekt Google Cloud.SUBSCRIPTION_NAME
: nazwa identyfikująca subskrypcji.TOPIC_NAME
: temat Pub/Sub, który wcześniej skierowałeś Utworzono.PUSH_NOTIFICATION_ENDPOINT
: Twoje powiadomienie push punktu końcowego modułu obsługi.
Pomyślna odpowiedź zwraca kod stanu HTTP 200
. Oto
przykładowa odpowiedź:
{ "name": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME", "topic": "TOPIC_NAME", "pushConfig": { "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT" }, "ackDeadlineSeconds": 10 }
Formaty powiadomień
Poniżej znajdziesz przykładowe powiadomienie Pub/Sub. Dane wiadomości to przesyłana jako ciąg znaków JSON zakodowany w formacie base64.
{ "message": { "attributes": {}, "data": "eyJza3VfaWQiOiAiR29vZ2xlLUFwcHMtVW5saW1pdGVkIiwgImV2ZW50X3R5cGUiOiAiU1VCU0NSSVBUSU9OX0NBTkNFTExFRCIsICJjdXN0b21lcl9kb21haW5fbmFtZSI6ICJkb21haW4uY29tIiwgInN1YnNjcmlwdGlvbl9pZCI6ICIxMjM0NTY3IiwgImN1c3RvbWVyX2lkIjogIkMwYWJjZGVmIiwgIm1lc3NhZ2VfaWQiOiAiODY3NTMwOSIsICJwdWJsaXNoX3RpbWUiOiB7InNlY29uZHMiOiAxNDU3NzMxODQ2LCAibmFub3MiOiAzNDkwMDAwMDB9LCAicmVzZWxsZXJfY3VzdG9tZXJfaWQiOiAiQzByZXNlbGxlciJ9", "message_id": 1234567891012131 }, "subscription": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME" }
Oto przykładowy obiekt message.data
po zdekodowaniu:
{
"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"
}
Typy zdarzeń
Poniższa lista zawiera wszystkie możliwe typy zdarzeń:
NEW_SUBSCRIPTION_CREATED
: utworzono nową subskrypcję.SUBSCRIPTION_TRIAL_ENDED
: zakończył się okres próbny subskrypcji.PRICE_PLAN_SWITCHED
: klient przeszedł z abonamentu elastycznego na roczny. . To zdarzenie nie jest wywoływane, jeśli klient konwertuje z abonamentu typu zobowiązaniem na abonament elastyczny w ramach odnowienia.COMMITMENT_CHANGED
: roczne zobowiązanie zostało zwiększone lub zmniejszone.SUBSCRIPTION_RENEWED
: subskrypcja roczna została odnowiona.SUBSCRIPTION_SUSPENDED
: subskrypcja została zawieszona. Zobaczsubscription_suspension_reasons
.SUBSCRIPTION_SUSPENSION_REVOKED
: zawieszenie wcześniej zawieszonej subskrypcji zostało anulowane.SUBSCRIPTION_CANCELLED
: subskrypcja została anulowana. Zobaczsubscription_cancellation_reason
. Może też służyć do wykrywania transfery danych.SUBSCRIPTION_CONVERTED
: subskrypcja została przekonwertowana. Oto kilka przykładów to wydarzenie jest następujące:- Przekształć subskrypcję bezpośrednią na subskrypcję sprzedawcy.
- Zmień płatną subskrypcję w ofertę z okresem prolongaty.
- Zmień subskrypcję online na subskrypcję offline.
SUBSCRIPTION_UPGRADE
: kod SKU subskrypcji został uaktualniony. Na przykład parametr subskrypcja została zmieniona z Google Workspace Business Starter na Business Standardowa.SUBSCRIPTION_DOWNGRADE
: kod SKU subskrypcji został obniżony. Na przykład parametr subskrypcja została zmieniona z Google Workspace Business Standard na Business Starter,LICENSE_ASSIGNMENT_CHANGED
: licencja została przypisana lub unieważniona użytkownika. Możesz użyć tego zdarzenia, aby reaktywnie śledzić zmiany liczby miejsc dla: Elastyczne subskrypcje.
Powody anulowania subskrypcji
Powód anulowania subskrypcji jest podawany, gdy event_type
wynosi
SUBSCRIPTION_CANCELLED
Oto możliwe przyczyny anulowania:
TRANSFERRED_OUT
: klient przeszedł na płatności bezpośrednie lub na do innego sprzedawcy.PURCHASE_OF_SUBSUMING_SKU
: klient przeszedł na wersję SKU, która zastępuje inny. Jeśli na przykład klient korzysta z Google Workspace Business przejście na wersję Starter i Google Vault na Google Workspace Business Plus, Subskrypcja Vault jest podporządkowana, ponieważ jest uwzględniona w Google Workspace Business PlusRESELLER_INITIATED
: sprzedawca anulował subskrypcję.OTHER
: subskrypcja została anulowana z innego powodu niż podany.
Przyczyny zawieszenia subskrypcji
Powód zawieszenia subskrypcji jest podawany, gdy event_type
wynosi
SUBSCRIPTION_SUSPENDED
Oto możliwe przyczyny zawieszenia konta:
PENDING_TOS_ACCEPTANCE
: klient nie zalogował się i nie zaakceptował Warunki sprzedaży Google Workspace.RENEWAL_WITH_TYPE_CANCEL
: zobowiązanie klienta zakończyło się, a jego usługa została anulowana z końcem umowy.RESELLER_INITIATED
: sprzedawca ręcznie zawiesił subskrypcję.TRIAL_ENDED
: zakończył się okres próbny klienta i klient nie wybrał Abonament bez okresu próbnego.OTHER
: konto klienta zostało zawieszone z wewnętrznego powodu Google. Powód: na przykład nadużycie.
Ograniczenia Pub/Sub
Kolejność powiadomień push nie jest gwarantowana. Wiadomości mogą zostać dostarczone
wiele razy i w wyjątkowych sytuacjach. Zalecamy użycie
reseller.subscriptions.get
we wszystkich zmienionych subskrypcjach, aby pobrać
obecny stan.