Par défaut, tous les agents créés à l'aide de l'API RBM Management utilisent un seul webhook pour les notifications. Ce webhook au niveau du partenaire est configuré dans la console de développement RCS for Business et s'applique à tous les agents de votre compte partenaire.
Vous pouvez également utiliser l'API RBM Management pour configurer des webhooks au niveau de l'agent. Cette option peut être intéressante si vous gérez plusieurs agents avec des comportements distincts.
Les extraits de code de cette page proviennent 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 et un jeton de validation. Configurez ensuite le webhook pour qu'il suive les étapes de validation.
Une fois configurée, appelez la méthode createWebhookIntegration avec les valeurs d'URL et de jeton. Si cet appel réussit, vous pouvez passer à la validation et au traitement des messages entrants.
Pour en savoir plus, consultez 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 ne dispose que d'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 sa référence. 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é :
{}