默认情况下,通过 RBM Management API 创建的所有代理都使用单个 webhook 来接收通知。此合作伙伴级 webhook 是在 Business Communications 开发者控制台中配置的,适用于合作伙伴账号中的所有客服人员。
或者,您也可以使用 RBM Management API 配置代理级 webhook。如果您管理多个具有不同行为的代理,这可能是一个不错的选择。
本页中的代码段摘自 Java 示例和 Node.js 示例。
创建网络钩子集成
如需添加客服人员网络钩子集成,请先定义网络钩子的网址并定义一个验证令牌。然后,按照验证步骤配置该网络钩子。配置完成后,使用网址和令牌值调用 createWebhookIntegration
方法。如果该调用成功,您可以继续验证和处理传入消息。
如需了解详情,请参阅 brands.agents.integrations
和 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); } );
以下代码会返回新的 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"
}
}
查找代理的 webhook 集成
您可以检索某个代理所属的所有 webhook 集成的列表。实际上,RBM 代理只能有一个 webhook 集成。如需了解详情,请参阅 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); });
以下代码会返回代理的 webhook 集成列表:
{
"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"
}
}
]
}
查找集成的详细信息
如果您有集成引用,则可以检索集成详情。如需了解详情,请参阅 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); });
以下代码会返回 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"
}
}
移除网络钩子
您可以使用 webhook 的引用从智能体中移除 webhook。如需了解详情,请参阅 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); });
系统会返回一个空对象:
{}