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 vengono recuperati dagli esempi Java e dagli esempi di Node.js.
Creare un'integrazione webhook
Per aggiungere un'integrazione webhook dell'agente, devi prima definire l'URL per il webhook e
definire un token di convalida. Poi configura l'webhook in base ai
passaggi di convalida.
Dopo la configurazione, 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.
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 webhook appartenenti a un agente. In pratica, un agente RBM ha sempre una sola integrazione di webhook.
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
Dati il riferimento a un'integrazione, è possibile recuperare i relativi dettagli.
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 di integrazione 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
Un webhook può essere rimosso da un agente utilizzando il suo riferimento:
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:
{}