Par défaut, tous les agents créés via l'API de gestion RBM utilisent un seul webhook pour les notifications. Ce webhook au niveau du partenaire est configuré dans la console pour les développeurs Business Communications et s'applique à tous les agents de votre compte partenaire.
Vous pouvez également utiliser l'API de gestion RBM pour configurer des webhooks au niveau de l'agent. Cette option peut être intéressante si vous gérez plusieurs agents dont le comportement est distinct.
Les extraits de code de cette page sont tirés des exemples Java et des exemples Node.js.
Créer une intégration de webhook
Pour ajouter une intégration de webhook d'agent, définissez d'abord l'URL de votre webhook, puis un jeton de validation. Ensuite, configurez le webhook en suivant les étapes de validation.
Une fois la configuration terminée, appelez la méthode createWebhookIntegration
avec les valeurs d'URL et de jeton. Si cet appel aboutit, vous pouvez procéder à la validation et à la gestion des messages entrants.
Pour en savoir plus, consultez les sections suivantes : brands.agents.integrations
et brands.agents.integrations.create
.
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); const url = 'https://myrbmserviceendpoint.somewhere.com/callback'; const token = '123456'; businessCommunicationsApiHelper .createWebhookIntegration(agent.name, url, token) .then((response) => { console.log(JSON.stringify(response.data, null, 2)); }).catch((err) => { console.log(err); } );
Ce code renvoie le nouvel objet webhook:
{
"name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_hfaoplpu_agent/integrations/4efdb82f-fd6d-4ba4-8ea3-f2f4a60d1547",
"status": "ENABLED",
"agentWebhookIntegration": {
"webhookUri": "https://myrbmserviceendpoint.somewhere.com/callback"
}
}
Rechercher les intégrations de webhook d'un agent
Vous pouvez récupérer la liste de toutes les intégrations de webhook appartenant à un agent.
En pratique, un agent RBM n'a qu'une seule intégration de webhook. Pour en savoir plus, consultez brands.agents.integrations.list
.
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); businessCommunicationsApiHelper .listAgentIntegrations(agent.name) .then((response) => { console.log(JSON.stringify(response.data, null, 2)); datastore.saveJsonData('integrations', response.data); }).catch((err) => { console.log(err); });
Ce code renvoie la liste des intégrations de webhook de l'agent:
{
"integrations": [
{
"name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_hfaoplpu_agent/integrations/4efdb82f-fd6d-4ba4-8ea3-f2f4a60d1547",
"status": "ENABLED",
"agentWebhookIntegration": {
"webhookUri": "https://myrbmserviceendpoint.somewhere.com/callback"
}
}
]
}
Rechercher les détails d'une intégration
Vous pouvez récupérer les détails d'une intégration si vous disposez de la référence correspondante. Pour en savoir plus, consultez brands.agents.integrations.get
.
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); businessCommunicationsApiHelper .getAgentIntegration(integrations.integrations[0].name) .then((response) => { console.log(JSON.stringify(response.data, null, 2)); }).catch((err) => { console.log(err); });
Ce code renvoie les détails de l'intégration du webhook:
{
"name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_hfaoplpu_agent/integrations/4efdb82f-fd6d-4ba4-8ea3-f2f4a60d1547",
"status": "ENABLED",
"agentWebhookIntegration": {
"webhookUri": "https://myrbmserviceendpoint.somewhere.com/callback"
}
}
Supprimer un webhook
Vous pouvez supprimer un webhook d'un agent à l'aide de sa référence. Pour en savoir plus, consultez brands.agents.integrations.delete
.
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); businessCommunicationsApiHelper .deleteAgentIntegration(integrations.integrations[0].name) .then((response) => { console.log(JSON.stringify(response.data, null, 2)); }).catch((err) => { console.log(err); });
Un objet vide est renvoyé:
{}