RBM Management API를 통해 생성된 모든 상담사는 기본적으로 알림에 단일 Webhook을 사용합니다. 이 파트너 수준 웹훅은 비즈니스 커뮤니케이션 개발자 콘솔에서 구성되며 파트너 계정의 모든 상담사에게 적용됩니다.
또는 RBM Management API를 사용하여 상담사 수준 webhook을 구성할 수 있습니다. 고유한 동작을 가진 여러 상담사를 관리하는 경우 이 방법이 적합할 수 있습니다.
이 페이지의 코드 스니펫은 Java 샘플 및 Node.js 샘플에서 가져온 것입니다.
웹훅 통합 만들기
상담사 웹훅 통합을 추가하려면 먼저 웹훅의 URL을 정의하고 유효성 검사 토큰을 정의합니다. 그런 다음 유효성 검사 단계에 따라 웹훅을 구성합니다.
구성되면 URL 및 토큰 값을 사용하여 createWebhookIntegration
메서드를 호출합니다. 호출이 성공하면 수신 메시지 확인 및 처리를 진행할 수 있습니다.
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"
}
}
상담사의 웹훅 통합 조회
상담사에게 속한 모든 웹훅 통합 목록을 검색할 수 있습니다. 실제로 RBM 에이전트는 웹훅 통합을 하나만 보유합니다.
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); });
이 코드는 웹훅 통합 세부정보를 반환합니다.
{
"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); });
빈 객체가 반환됩니다.
{}