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 lesubscription_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 lesubscription_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 indirectsRENEWAL_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.