Per impostazione predefinita, tutti gli agenti creati tramite l'API RBM Management utilizzano un unico webhook per le notifiche. Questo webhook a livello di partner viene configurato nella Console per gli sviluppatori di Business Communications e si applica a tutti gli agenti all'interno del tuo account partner.
In alternativa, puoi utilizzare l'API RBM Management per configurare webhook a livello di agente. Questa può essere una buona opzione se gestisci più agenti con comportamenti distinti.
Gli snippet di codice in questa pagina sono tratti dagli esempi Java e dagli esempi Node.js.
Creare un'integrazione webhook
Per aggiungere un'integrazione webhook dell'agente, definisci prima l'URL del webhook e un token di convalida. Poi configura l'webhook in base ai passaggi di convalida.
Una volta configurato, chiama il metodo createWebhookIntegration
con i valori dell'URL e del token. Se la chiamata va a buon fine, puoi procedere con la verifica e la gestione dei messaggi in arrivo.
Per maggiori dettagli, consulta
brands.agents.integrations
e 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); } );
Questo codice restituisce il nuovo oggetto 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"
}
}
Cercare le integrazioni webhook di un agente
Puoi recuperare un elenco di tutte le integrazioni di webhook appartenenti a un agente.
In pratica, un agente RBM ha sempre una sola integrazione di webhook. Per maggiori dettagli, vedi 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); });
Questo codice restituisce un elenco delle integrazioni webhook dell'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"
}
}
]
}
Cercare i dettagli di un'integrazione
Puoi recuperare i dettagli dell'integrazione se disponi del riferimento a un'integrazione. Per maggiori dettagli, vedi 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); });
Questo codice restituisce i dettagli dell'integrazione dell'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"
}
}
Rimuovere un webhook
Puoi rimuovere un webhook da un agente utilizzando il relativo riferimento. Per maggiori dettagli, vedi 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); });
Viene restituito un oggetto vuoto:
{}