Todos los agentes creados a través de la API de RBM Management usan un solowebhook para las notificaciones de forma predeterminada. Este webhook a nivel del socio se configura en la Consola para desarrolladores de Business Communications y se aplica a todos los agentes de tu cuenta de socio.
Como alternativa, puedes usar la API de administración de RBM para configurar webhooks a nivel del agente. Esta puede ser una buena opción si administras varios agentes con un comportamiento distinto.
Los fragmentos de código de esta página se tomaron de las muestras de Java y de las muestras de Node.js.
Crea una integración de webhook
Para agregar una integración de webhook de agente, primero define la URL de tu webhook y un token de validación. Luego, configura el webhook para que siga los pasos de validación.
Una vez configurado, llama al método createWebhookIntegration
con los valores de la URL y el token. Si la llamada se realiza correctamente, puedes continuar con la
verificación y el manejo de los mensajes entrantes.
Para obtener más información, consulta brands.agents.integrations
y 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); } );
Este código muestra el nuevo objeto de 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"
}
}
Cómo buscar las integraciones de webhook de un agente
Puedes recuperar una lista de todas las integraciones de webhooks que pertenecen a un agente.
En la práctica, un agente de RBM solo tiene una integración de webhook. Para obtener más información, consulta 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); });
Este código muestra una lista de las integraciones de webhook del agente:
{
"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"
}
}
]
}
Cómo buscar detalles de una integración
Puedes recuperar los detalles de la integración si tienes la referencia a una integración. Si deseas obtener más información, consulta 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); });
Este código muestra los detalles de la integración del 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"
}
}
Cómo quitar un webhook
Puedes quitar un webhook de un agente con su referencia. Para obtener más información, consulta 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); });
Se muestra un objeto vacío:
{}