โดยตัวแทนทั้งหมดที่สร้างผ่าน RBM Management API จะใช้ Webhook รายการเดียวสำหรับการแจ้งเตือนโดยค่าเริ่มต้น เว็บฮุคระดับพาร์ทเนอร์นี้ได้รับการกําหนดค่าในคอนโซลของนักพัฒนาซอฟต์แวร์สําหรับการสื่อสารทางธุรกิจ และจะมีผลกับตัวแทนทั้งหมดภายในบัญชีพาร์ทเนอร์
หรือจะใช้ RBM Management API เพื่อกําหนดค่าWebhook ระดับตัวแทนก็ได้ ตัวเลือกนี้อาจเป็นตัวเลือกที่ดีหากคุณจัดการตัวแทนหลายรายที่มีลักษณะการทํางานแตกต่างกัน
ข้อมูลโค้ดในหน้านี้นำมาจากตัวอย่าง Java และตัวอย่าง Node.js
สร้างการผสานรวมเว็บฮุค
หากต้องการเพิ่มการผสานรวมเว็บฮุคของตัวแทน ให้กําหนด URL สําหรับเว็บฮุคและโทเค็นการตรวจสอบก่อน จากนั้นกําหนดค่า Webhook ให้ทําตามขั้นตอนการตรวจสอบ
เมื่อกําหนดค่าแล้ว ให้เรียกใช้เมธอด createWebhookIntegration
พร้อม URL และค่าโทเค็น หากการโทรดังกล่าวสำเร็จ คุณสามารถดำเนินการยืนยันและจัดการข้อความขาเข้าต่อได้
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); } );
โค้ดนี้จะแสดงออบเจ็กต์เว็บฮุคใหม่
{
"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 ทั้งหมดของตัวแทนได้ ในทางปฏิบัติ ตัวแทน RBM จะมีการผสานรวม 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); });
รหัสนี้จะแสดงรายการการผสานรวมเว็บฮุคของตัวแทน
{
"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"
}
}
]
}
ค้นหารายละเอียดของการผสานรวม
คุณสามารถดึงข้อมูลรายละเอียดของการผสานรวมได้เมื่อมีข้อมูลอ้างอิงถึงการผสานรวม
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"
}
}
นำเว็บฮุคออก
คุณนำเว็บฮุคออกจากตัวแทนได้โดยใช้การอ้างอิง
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); });
ระบบจะแสดงผลออบเจ็กต์ว่างเปล่าในกรณีต่อไปนี้
{}