Theo mặc định, tất cả các tác nhân được tạo thông qua API Quản lý RBM đều sử dụng một webhook duy nhất cho thông báo. Webhook cấp đối tác này được định cấu hình trong Business Communications Developer Console và áp dụng cho tất cả nhân viên hỗ trợ trong tài khoản đối tác của bạn.
Ngoài ra, bạn có thể sử dụng API Quản lý RBM để định cấu hình webhook cấp đại lý. Đây có thể là một lựa chọn phù hợp nếu bạn quản lý nhiều tác nhân có hành vi riêng biệt.
Các đoạn mã trên trang này được lấy từ mẫu Java và mẫu Node.js.
Tạo chế độ tích hợp webhook
Để thêm chế độ tích hợp webhook của nhân viên hỗ trợ, trước tiên, hãy xác định URL cho webhook và xác định mã xác thực. Sau đó, hãy định cấu hình webhook theo các bước xác thực.
Sau khi định cấu hình, hãy gọi phương thức createWebhookIntegration
bằng URL và giá trị mã thông báo. Nếu lệnh gọi đó thành công, bạn có thể tiếp tục xác minh và xử lý tin nhắn đến.
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); } );
Mã này trả về đối tượng webhook mới:
{
"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"
}
}
Tra cứu các chế độ tích hợp webhook của nhân viên hỗ trợ
Bạn có thể truy xuất danh sách tất cả các chế độ tích hợp webhook thuộc về một nhân viên hỗ trợ. Trong thực tế, một tác nhân RBM chỉ có thể tích hợp một webhook duy nhất.
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); });
Mã này trả về danh sách các công cụ tích hợp webhook của nhân viên hỗ trợ:
{
"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"
}
}
]
}
Tra cứu thông tin chi tiết về một dịch vụ tích hợp
Khi tham chiếu đến một mục tích hợp, bạn có thể truy xuất thông tin chi tiết về mục tích hợp đó.
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); });
Mã này trả về thông tin chi tiết về việc tích hợp 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"
}
}
Xoá webhook
Bạn có thể xoá webhook khỏi một nhân viên hỗ trợ bằng cách sử dụng thông tin tham chiếu của webhook đó:
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); });
Hệ thống sẽ trả về một đối tượng trống:
{}