Todos os agentes criados pela API RBM Management usam um único webhook para notificações por padrão. Esse webhook no nível do parceiro é configurado no RCS for Business Developer Console e se aplica a todos os agentes na sua conta de parceiro.
Como alternativa, use a API Management do RBM 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 em Java e Node.js.
Criar uma integração com o webhook
Para adicionar uma integração com o 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 de URL e
token. Se a chamada for bem-sucedida, você poderá verificar e processar 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 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"
}
}
Pesquisar as integrações de webhook de um agente
É possível recuperar uma lista de todas as integrações de webhook pertencentes a um agente.
Na prática, um agente do RBM tem apenas uma integração com o 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 a 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 com o 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:
{}