Notifications push

Présentation

L'API Reseller utilise l'API Pub/Sub pour diffuser des messages push. des notifications à propos des différents événements d'abonnement. Par exemple, vous pouvez configurer la méthode push des notifications afin d'être averti lorsque états des abonnements le changement.

Prérequis

  • Activer l'API Pub/Sub pour votre projet Google Cloud.
  • Attribuez des rôles IAM Pub/Sub à votre compte de service sur votre Google Cloud. Le fait d'accorder Le rôle roles/pubsub.editor est un bon compromis (facile et pas trop général). mais vous pouvez choisir d'utiliser Autorisations Pub/Sub.

Créer un sujet

Pour créer un sujet, vous devez vous enregistrer auprès de l'API Reseller à l'aide de la commande Méthode resellernotify.register. La méthode resellernotify.register utilise l'adresse e-mail d'un compte de service comme . Seuls les comptes de service autorisés par cette méthode peuvent s'abonner à votre sujet que vous venez de créer.

POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/register
{
  "serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}

Une réponse positive renvoie un code d'état HTTP 200 et une réponse JSON contenant le nom de votre sujet Pub/Sub.

Voici un exemple de réponse :

{
  "topicName": "projects/partner-watch/topics/C0abcdefg"
}

Pour autoriser des comptes de service supplémentaires à utiliser votre sujet, vous pouvez appeler resellernotify.register.

Révoquer l'accès d'un compte de service

L'API Reseller permet également d'annuler l'enregistrement de comptes de service à l'aide du point de terminaison resellernotify.unregister:

POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/unregister
{
  "serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}

S'abonner à un sujet

Après avoir créé le sujet Pub/Sub, vous devez configurer la manière dont votre application utilise vos événements de modification. Choisissez l'une des options suivantes :

  • Abonnement push: vous fournissez un rappel HTTP POST. Pub/Sub utilise ce rappel pour informer votre application des nouveaux événements.
  • Abonnement pull: votre application effectue régulièrement un appel HTTP afin de obtenir toutes les modifications en file d'attente.

Voici un exemple de requête pour s'abonner à un sujet:

PUT https://pubsub.googleapis.com/v1/projects/PROJECT/subscriptions/SUBSCRIPTION_NAME
{
  "topic": "TOPIC_NAME"
  // Only needed for push configurations
  "pushConfig": {
    "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT"
  },
}

Remplacez les éléments suivants :

  • PROJECT : votre projet Google Cloud.
  • SUBSCRIPTION_NAME: nom permettant d'identifier votre abonnement.
  • TOPIC_NAME: sujet Pub/Sub que vous avez précédemment créé.
  • PUSH_NOTIFICATION_ENDPOINT: votre notification push le point de terminaison du gestionnaire.

Une réponse positive renvoie un code d'état HTTP 200. Voici un exemple Exemple de réponse:

{
  "name": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME",
  "topic": "TOPIC_NAME",
  "pushConfig": {
    "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT"
    },
  "ackDeadlineSeconds": 10
}

Formats des notifications

Voici un exemple de notification Pub/Sub. Les données du message sont transmis sous forme de chaîne JSON encodée en base64.

{
  "message": {
    "attributes": {},
    "data": "eyJza3VfaWQiOiAiR29vZ2xlLUFwcHMtVW5saW1pdGVkIiwgImV2ZW50X3R5cGUiOiAiU1VCU0NSSVBUSU9OX0NBTkNFTExFRCIsICJjdXN0b21lcl9kb21haW5fbmFtZSI6ICJkb21haW4uY29tIiwgInN1YnNjcmlwdGlvbl9pZCI6ICIxMjM0NTY3IiwgImN1c3RvbWVyX2lkIjogIkMwYWJjZGVmIiwgIm1lc3NhZ2VfaWQiOiAiODY3NTMwOSIsICJwdWJsaXNoX3RpbWUiOiB7InNlY29uZHMiOiAxNDU3NzMxODQ2LCAibmFub3MiOiAzNDkwMDAwMDB9LCAicmVzZWxsZXJfY3VzdG9tZXJfaWQiOiAiQzByZXNlbGxlciJ9",
    "message_id": 1234567891012131
  },
  "subscription": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME"
}

Voici l'exemple d'objet message.data après décodage:

{
  "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"
}

Types d'événement

La liste suivante contient tous les types d'événements possibles:

  • NEW_SUBSCRIPTION_CREATED: un abonnement a été créé.
  • SUBSCRIPTION_TRIAL_ENDED: l'essai d'un abonnement a pris fin.
  • PRICE_PLAN_SWITCHED: le client est passé d'un forfait modulable à un forfait annuel du client. Cet événement n'est pas déclenché si le client effectue une conversion à partir d'un en forfait modulable lors du renouvellement.
  • COMMITMENT_CHANGED: l'engagement annuel a été augmenté ou diminué.
  • SUBSCRIPTION_RENEWED: un abonnement annuel a été renouvelé.
  • SUBSCRIPTION_SUSPENDED: l'abonnement est suspendu. Consultez le subscription_suspension_reasons.
  • SUBSCRIPTION_SUSPENSION_REVOKED: la suspension d'un abonnement précédemment suspendu a été révoquée.
  • SUBSCRIPTION_CANCELLED: l'abonnement a été annulé. Consultez le subscription_cancellation_reason. Peut également être utilisé pour détecter transferts.
  • SUBSCRIPTION_CONVERTED: l'abonnement a été converti. Quelques exemples de cas d'utilisation cet événement sont les suivantes:

    • Convertissez un abonnement direct en abonnement revendeur.
    • Convertissez un abonnement payant en offre de grâce.
    • Convertissez un abonnement en ligne en abonnement hors connexion.
  • SUBSCRIPTION_UPGRADE: le SKU de l'abonnement a été mis à niveau. Par exemple, l'abonnement est passé de Google Workspace Business Starter à Business Standard.

  • SUBSCRIPTION_DOWNGRADE: le SKU de l'abonnement est passé à une version antérieure. Par exemple, est passé de Google Workspace Business Standard à Business Starter.

  • LICENSE_ASSIGNMENT_CHANGED: une licence a été attribuée ou révoquée pour un utilisateur. Vous pouvez utiliser cet événement pour suivre l'évolution du nombre de places de façon réactive pour Abonnements modulables.

Motifs de résiliation de l'abonnement

Le motif de résiliation de l'abonnement est renseigné lorsque event_type est SUBSCRIPTION_CANCELLED Voici les motifs d'annulation possibles:

  • TRANSFERRED_OUT: le client est passé à la facturation directe ou à un autre revendeur.
  • PURCHASE_OF_SUBSUMING_SKU: le client est passé à un SKU en prévaut sur les autres. Par exemple, si un client utilisant Google Workspace Business les licences Starter et Google Vault à Google Workspace Business Plus, L'abonnement Vault a été résilié, car il est inclus dans Google Workspace Business Plus.
  • RESELLER_INITIATED: le revendeur a résilié l'abonnement.
  • OTHER: l'abonnement a été résilié pour une raison autre que celle indiquée.

Motifs de suspension de l'abonnement

Le motif de la suspension de l'abonnement est renseigné lorsque event_type est SUBSCRIPTION_SUSPENDED Voici les motifs de suspension possibles:

  • PENDING_TOS_ACCEPTANCE: le client ne s'est pas connecté et a accepté la Conditions d'utilisation des services Google Workspace indirects
  • RENEWAL_WITH_TYPE_CANCEL: l'engagement du client a pris fin et ses service a été résilié à la fin de sa période d'engagement.
  • RESELLER_INITIATED: le revendeur a suspendu manuellement l'abonnement.
  • TRIAL_ENDED: l'essai du client est arrivé à expiration et le client n'a pas sélectionné de période d'essai un forfait hors période d'essai.
  • OTHER : le client a été suspendu pour une raison interne à Google. Par exemple : Exemple : abus.

Limites de Pub/Sub

L'ordre des notifications push n'est pas garanti. Les messages peuvent être distribués plusieurs fois et dans des situations extrêmes, pas du tout. Nous vous recommandons d'utiliser reseller.subscriptions.get sur tous les abonnements modifiés pour extraire l'état actuel.