Todos os agentes criados pela API RBM Management usam um único webhook para notificações por padrão. Esse webhook do parceiro é configurado no Console do desenvolvedor de comunicações empresariais e se aplica a todos os agentes na sua conta de parceiro.
Como alternativa, use a API RBM Management para configurar webhooks no nível do agente. Essa pode ser uma boa opção se você gerencia vários agentes com comportamentos distintos.
Os snippets de código nesta página foram extraídos dos exemplos de Java e Node.js.
Criar uma integração de webhook
Para adicionar uma integração de webhook do agente, primeiro defina o URL do webhook e
um token de validação. Em seguida, configure o webhook para seguir as
etapas de validação.
Depois de configurado, chame o método createWebhookIntegration
com os valores do URL e
do token. Se a chamada for bem-sucedida, você poderá continuar com a
verificação e o processamento de mensagens recebidas.
Para mais detalhes, consulte
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); } );
Esse código retorna o novo objeto 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"
}
}
Consultar as integrações de webhook de um agente
É possível extrair uma lista de todas as integrações de webhook pertencentes a um agente.
Na prática, um agente RBM só tem uma integração de webhook. Para mais
detalhes, consulte 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); });
Esse código retorna uma lista das integrações de webhook do 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"
}
}
]
}
Consultar detalhes de uma integração
É possível recuperar os detalhes da integração se você tiver a referência de uma
integração. Para ver mais detalhes, consulte 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); });
Esse código retorna os detalhes da integração do 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"
}
}
Remover um webhook
É possível remover um webhook de um agente usando a referência dele. Para mais
detalhes, consulte 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); });
Um objeto vazio é retornado:
{}