Powiadomienia push

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. Zobacz subscription_suspension_reasons.
  • SUBSCRIPTION_SUSPENSION_REVOKED: zawieszenie wcześniej zawieszonej subskrypcji zostało anulowane.
  • SUBSCRIPTION_CANCELLED: subskrypcja została anulowana. Zobacz subscription_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 Plus
  • RESELLER_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.