sgcWebSockets 2022.6.0부터 .NET에서 WhatsApp Cloud API를 지원해요.
클라우드 호스팅 버전의 WhatsApp Business Platform을 사용해 메시지를 보내고 받을 수 있어요. Cloud API를 이용하면 자체 서버 호스팅 비용 없이 WhatsApp Business API를 구현할 수 있고, 비즈니스 메시징을 더 쉽게 확장할 수 있어요. Cloud API는 텍스트 및 미디어 메시지를 포함해 초당 최대 80개의 메시지 송수신을 지원해요.
WhatsApp Business API를 통해 중소·대기업은 고객과 대규모로 소통할 수 있어요. API를 활용해 수천 명의 고객을 상담원이나 봇과 연결하는 시스템을 구축할 수 있으며, 프로그래밍 방식과 수동 방식 모두 지원해요. 또한 CRM이나 마케팅 플랫폼 같은 다양한 백엔드 시스템과 통합할 수 있어요.
기능
Cloud API를 사용하면 새로운 기능을 더 빠르게 이용할 수 있어요. 현재 WhatsApp Business Cloud API는 WhatsApp Business API에서 제공하는 모든 기능을 포함하고 있어요.
WhatsApp Cloud API의 주요 기능:
- CRM, 분석, 서드파티 앱 등의 도구와 WhatsApp 메시징 통합
- 그린 틱 — 인증된 WhatsApp Business 프로필
- WhatsApp 브로드캐스트 & 대량 메시지
- 앱이나 인터페이스 없이 BSP 또는 CRM을 통해 사용
- 서드파티 앱을 활용한 WhatsApp 챗봇 & 채팅 자동화
- 대규모 WhatsApp 메시지 예약 발송
- 목록 메시지, 답장 버튼, CTA 메시지 등 인터랙티브 메시지 기능
시작하기
테스트 번호로 첫 번째 메시지를 보내고 받으려면 다음 단계를 완료해 주세요:
1. 개발자 자산 및 플랫폼 접근 설정
- Meta 개발자로 등록하기
- 계정 2단계 인증 활성화하기
- Meta 앱 만들기: developers.facebook.com > 내 앱 > 앱 만들기로 이동하세요. "비즈니스" 유형을 선택하고 화면의 지침을 따르세요.
앱 대시보드에서 WhatsApp에 연결하려는 앱을 클릭하세요. 아래로 스크롤해 "WhatsApp" 제품을 찾고 설정을 클릭하세요.
다음으로 기존 Business Manager를 선택하거나(있는 경우), 온보딩 프로세스에서 자동으로 생성하도록 선택할 수 있어요(나중에 비즈니스를 커스터마이즈할 수 있어요). 선택 후 계속을 클릭하세요.
계속을 클릭하면 온보딩 프로세스가 다음 작업을 수행해요:
- 앱이 선택했거나 자동 생성된 Business Manager와 연결돼요.
- 비즈니스에 WhatsApp 테스트 전화번호가 추가돼요. 이 테스트 번호로 실제 전화번호를 등록하거나 마이그레이션하지 않고도 WhatsApp Business Platform을 탐색할 수 있어요. 테스트 전화번호는 전 세계 최대 5명의 수신자에게 무제한으로 메시지를 보낼 수 있어요.
2. 테스트 메시지 보내기
이제 IDE를 열고 새 프로젝트를 만드세요. TsgcWhatsapp_Client 컴포넌트를 추가하고 다음 속성을 입력하세요:
- WhatsappOptions.PhoneNumberId: 메시지를 보내는 데 사용하는 전화번호 ID예요.
- WhatsappOptions.Token: 24시간 동안 유효한 임시 액세스 토큰이에요.
이 두 가지 속성을 올바르게 설정한 후 SendTest 메서드를 호출하면 WhatsApp Business Platform을 통해 전화번호로 첫 번째 메시지를 보낼 수 있어요.
TsgcWhatsapp_Client oClient = new TsgcWhatsapp_Client();
oClient.WhatsappOptions.PhoneNumberId = "107809351952205";
oClient.WhatsappOptions.Token = "EAAO4OpgZAs98BAGj3nCFGr...ZB2t8mmLB2LRXJkte2Y5PMNh2";
oClient.SendTest("34605889421");
3. 웹훅 설정하기
메시지를 받거나 메시지 상태가 변경될 때 알림을 받으려면 앱에 Webhooks 엔드포인트를 설정해야 해요. Webhooks 설정은 전화번호 상태에 영향을 미치지 않으며 메시지 송수신을 방해하지 않아요.
시작하려면 먼저 엔드포인트를 생성해야 해요. WhatsApp 클라이언트 컴포넌트의 ServerOptions 속성을 구성하고 다음 속성을 설정하세요:
- ServerOptions: 여기에서 바인딩할 IP 주소, 수신 포트, SSL 사용 여부를 설정할 수 있어요(WebHook은 보안 서버에서 실행해야 해요. SSL을 사용하도록 서버를 설정하거나 WebHook 요청을 HTTP 서버로 프록시할 수 있어요). 서버는 TsgcWebSocketHTTPServer를 기반으로 해요.
- WebhookOptions: 이 속성은 나중에 Facebook 개발자 계정에서 설정할 Webhook 속성을 설정해요.
- Endpoint: 엔드포인트의 이름이에요. 기본값은 /webhook이에요. 예: 서버가 https://www.esegece.com에서 수신 대기 중이라면 엔드포인트는 "https://www.esegece.com/webhook"이 돼요.
- Token: 사용자가 정의한 모든 값을 포함할 수 있는 보안 문자열이에요. Webhook 등록이 올바른지 확인하는 데 사용해요.
- WebhookOptions: 이 속성은 나중에 Facebook 개발자 계정에서 설정할 Webhook 속성을 설정해요.
서버 설정 후 StartServer 메서드를 사용해 서버를 시작하고 들어오는 요청을 수락할 수 있어요.
TsgcWhatsapp_Client oClient = TsgcWhatsapp_Client.Create(); oClient.ServerOptions.WebhookOptions.Endpoint = "/webhook"; oClient.ServerOptions.WebhookOptions.Token = "MySecretToken"; oClient.StartServer();
엔드포인트가 준비되면 앱 대시보드로 이동하세요.
앱 대시보드에서 WhatsApp 제품을 찾아 Configuration을 클릭하세요. 그런 다음 webhooks 섹션을 찾아 Configure a webhook을 클릭하세요. 클릭 후 화면에 대화 상자가 나타나며 두 가지 항목을 요청해요:
- Callback URL: Meta가 이벤트를 보낼 URL이에요.
- Verify Token: webhook 엔드포인트를 생성할 때 사용자가 설정한 문자열이에요.
정보를 입력한 후 확인 및 저장을 클릭하세요.
앱 대시보드로 돌아가서 왼쪽 패널에서 WhatsApp > Configuration을 클릭하세요. Webhooks 아래에서 Manage를 클릭하세요. 알림을 받을 수 있는 모든 객체가 포함된 대화 상자가 열려요. 사용자로부터 메시지를 받으려면 messages에 대해 Subscribe를 클릭하세요.
4. 테스트 메시지 받기
새 메시지가 수신될 때마다 클라이언트 이벤트 OnMessageReceived가 호출돼요.
void OnWhatsAppMessageReceived(TsgcWhatsApp_Client Sender, TsgcWhatsApp_Receive_Message Message, ref bool MarkAsRead)
{
DoLog("Message Received: [" + Message.From + "] " + Message.Text);
MarkAsRead = true;
}
Webhook이 설정됐으면, 사용한 테스트 번호로 메시지를 보내세요. 메시지 내용이 담긴 Webhooks 알림을 즉시 받을 수 있어요!
아래에서 공개 온라인 WhatsApp 봇 데모를 확인하세요. 텍스트 메시지를 보내면 시작돼요.
WhatsApp Bot
sgcWebSockets 라이브러리로 만들어졌어요. 텍스트 메시지를 보내면 봇이 옵션 목록을 표시하거나 메시지를 그대로 반환해요. https://www.esegece.com/demo/whatsapp아래에서 Windows용 컴파일된 WhatsApp 데모를 확인하세요.
