Per impostazione predefinita, tutti gli agenti creati tramite l'API RBM Management utilizzano un unico webhook per le notifiche. Questo hook a livello di partner è configurato nella Developer Console 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. Potrebbe essere una buona soluzione se gestisci più agenti con comportamenti distinti.
Gli snippet di codice in questa pagina sono ricavati dagli esempi Java e Node.js.
Crea un'integrazione webhook
Per aggiungere un'integrazione webhook dell'agente, devi prima definire l'URL del webhook e definire un token di convalida. Poi configura il webhook in modo che segua la procedura di convalida.
Dopo la configurazione, chiama il metodo createWebhookIntegration
con i valori dell'URL e del token. Se la chiamata ha esito positivo, puoi procedere con la verifica e 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"
}
}
Cerca 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 e solo una singola integrazione 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
Dato il riferimento a un'integrazione, è possibile recuperarne i 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 dell'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 relativo 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:
{}