Meta 개발자 계정 등록 및 API 키 획득 후, 공식 엔드포인트(예: https://graph.facebook.com/v19.0/<PHONE_NUMBER_ID>/messages)를 POST 요청으로 호출할 때, Authorization: Bearer <ACCESS_TOKEN> 및 Content-Type: application/json 헤더를 포함하고, JSON 형식 메시지(예: {"messaging_product":"whatsapp","to":"886912345678","text":{"body":"테스트 메시지"}})를 전송해야 합니다. 빈도 제한은 초당 200건입니다.
계정 등록 및 인증서 획득
Meta 공식 데이터에 따르면, 현재 500만 개 이상의 기업이 WhatsApp Business API를 사용하여 고객과 소통하고 있으며, 평균 응답 속도는 3분 이내로 단축되었고, 메시지 오픈율은 98%에 달합니다. 등록 절차는 일반적으로 1~3 영업일이 소요되지만, 리셀러 채널을 선택하면 2시간 이내로 단축될 수 있습니다. 다음은 구체적인 작업 세부 정보입니다:
먼저 Meta 공식 개발자 플랫폼(developers.facebook.com)으로 이동하여 “앱 만들기”를 클릭하고 “비즈니스” 유형을 선택합니다. 시스템은 앱 이름(회사 영문 이름 사용 권장), 연락처 이메일(기업 도메인과 일치해야 함)을 입력하고 “WhatsApp”을 주요 제품으로 선택하도록 요청합니다. 여기서 주의할 점은: 앱 이름은 제출 후 수정할 수 없으며, 각 비즈니스 계정은 최대 5개의 앱을 생성할 수 있습니다. 기본 등록을 완료하면, 플랫폼은 64자리 문자의 앱 ID(App ID)와 32자리 문자의 앱 시크릿(App Secret)을 생성합니다. 이 두 코드는 시크릿 키가 한 번만 표시되므로 즉시 다운로드하여 저장해야 합니다.
다음으로 비즈니스 인증을 진행해야 합니다. 기업은 공식 상업 문서(사업자 등록증, 세금 등록증 또는 회사 등록 증명서)를 업로드해야 하며, 파일 형식은 PDF/JPG/PNG로 제한되며 크기는 5MB를 초과할 수 없습니다. 심사 시간은 보통 24~72시간이지만, 인증된 BSP(Business Solution Provider)와 협력하기로 선택하면 이 단계를 건너뛰고 바로 그들의 빠른 채널을 사용할 수 있습니다. 인증 통과 후, 시스템은 API 접근 권한을 부여하고 영구적으로 유효한 기본 접근 토큰(Access Token)을 제공합니다. 이 토큰은 기본적으로 90일 동안 유효하지만, 정기적인 갱신 메커니즘을 통해 연장할 수 있습니다.
기본 토큰을 얻은 후에는 전화번호를 연결해야 합니다. 각 앱은 최대 25개의 번호를 연결할 수 있으며, 이 번호는 WhatsApp Business에 등록되지 않은 실제 번호여야 합니다(새 SIM 카드 구매 권장). 연결 시 월별 고정 비용(국가별로 약 0.5~5달러)을 지불해야 하며, 문자 메시지 또는 음성 통화를 통해 6자리 인증 코드를 수신해야 합니다. 연결 완료 후, 플랫폼은 전용 API 엔드포인트 URL(128비트 암호화 매개변수 포함)을 생성하며, 이 URL은 향후 모든 API 호출의 핵심 인증서입니다.
마지막으로 Webhook 메시지 수신을 설정해야 합니다. 서버는 HTTPS 프로토콜을 지원해야 하며 TLS 1.2 이상 암호화를 구성해야 하며, 각 메시지 푸시 간격은 최소 100밀리초로 설정할 수 있습니다. 로드 밸런서를 미리 구성하는 것이 좋으며, Meta 공식 요구 사항에 따라 서버 응답 시간은 300밀리초 미만이어야 하며, 그렇지 않으면 재시도 메커니즘이 트리거됩니다(최대 3회 재시도, 각 간격 5분). 모든 설정을 완료한 후, 백그라운드에서 “API 디버그 모드”를 켜는 것을 잊지 마세요. 이는 모든 요청의 JSON 형식 원시 데이터를 기록하여 후속 문제 해결에 편리합니다. 전체 프로세스의 총 비용은 약 15~50달러(번호 월별 비용 제외)이며, 리셀러를 통해 처리하는 경우 보통 일회성 50~100달러의 기술 서비스 수수료가 추가됩니다.
API 접근 권한 설정
Meta 공식 통계에 따르면, API 호출 실패의 30% 이상이 권한 구성 오류에서 비롯됩니다. 올바른 권한 설정은 메시지 전송률을 평균 75%에서 99.8%로 높이고 응답 속도를 500밀리초 이내로 압축할 수 있습니다. 권한 설정은 4가지 핵심 계층을 포함합니다: 비즈니스 계층(Business Level), 앱 계층(App Level), 번호 계층(Phone Level) 및 기능 계층(Feature Level)이며, 각 계층의 권한은 독립적으로 심사해야 하며 총 심사 시간은 약 2~6시간이 소요됩니다. 다음은 구체적인 작업 세부 정보입니다:
먼저 Meta for Developers 백그라운드에 접속하여 “앱 설정”에서 “권한” 탭을 찾습니다. 여기에는 13가지 기본 권한 스위치가 표시되며, 이 중에서 반드시 켜야 하는 핵심 권한에는: messages(메시지 송수신), contacts(연락처 읽기), webhooks(웹훅) 및 message_templates(템플릿 메시지)가 포함됩니다. 각 권한은 활성화 후 개별적으로 심사를 제출해야 하며, 템플릿 메시지 권한 심사가 가장 엄격하여 보통 최소 3개의 기본 메시지 내용(각 최대 1024자)을 제공하고 전송 빈도(예: 시간당 최대 200개 전송)를 설명해야 합니다.
특히 전화번호 권한의 연결 절차에 주의해야 합니다. 각 번호는 해당하는 API 작동 권한에 연결되어야 하며, 여기에는 다음이 포함됩니다: 멀티미디어 파일(이미지/비디오/문서) 전송 가능 여부, 음성 통화 발신 가능 여부, 위치 정보 전송 가능 여부. 멀티미디어 권한은 기본적으로 비활성화되어 있으며, 활성화하려면 파일 유형 설명(예: jpg/png 형식으로 제한, 단일 파일 16MB 이하)을 업로드해야 합니다. 음성 권한은 기업 인증을 통과한 계정에만 개방되며, 통화당 최소 0.015달러가 청구됩니다.
Webhook 설정은 권한 구성의 핵심 노드입니다. “웹훅” 필드에 미리 준비된 HTTPS 콜백 URL을 입력해야 하며(Nginx 리버스 프록시 서버 사용 권장), 수신할 6가지 이벤트 유형을 설정해야 합니다: message(메시지 수신), status(상태 업데이트), template(템플릿 상태), contact(연락처 변경), location(위치 업데이트), error(오류 로그). 서버는 3초 이내에 200 OK 상태 코드를 응답해야 하며, 그렇지 않으면 Meta 서버가 재시도 메커니즘을 트리거합니다(최대 5회 재시도, 각 간격 15분).
다음은 주요 권한 범주의 매개변수 설정 기준입니다:
| 권한 유형 | 최고 빈도 제한 | 데이터 형식 | 유효 기간 | 동시 실행 수 |
|---|---|---|---|---|
| 텍스트 메시지 전송 | 초당 20건 | UTF-8 인코딩 | 영구 | 5건 |
| 미디어 메시지 전송 | 초당 5건 | Base64 인코딩 | 24시간 | 2건 |
| 템플릿 메시지 전송 | 초당 1건 | JSON 형식 | 30일 | 1건 |
| 연락처 읽기 | 초당 10회 | vCard 형식 | 영구 | 3회 |
| 상태 조회 | 초당 15회 | Webhook 푸시 | 영구 | 5회 |
“고급 설정”에서 분당/시간당/일일 API 호출 상한을 사용자 정의할 수 있으며, 기본값은 분당 1000회 요청입니다(비즈니스 요구에 따라 분당 10000회로 높일 수 있음). 자동 확장 모드를 켜는 것이 좋습니다. 요청량이 5분 연속으로 설정 값의 80%를 초과하면 시스템이 자동으로 용량 할당량을 20% 증가시킵니다. 모든 권한 변경은 감사 로그에 실시간으로 기록되며, 180일 이내의 모든 작업 기록을 추적할 수 있습니다. 설정을 완료한 후 반드시 “권한 시뮬레이션 테스트” 버튼을 클릭해야 합니다. 시스템은 자동으로 25가지 검사 항목을 실행하며, 검사 시간은 약 8분이 소요되며, API 서비스를 공식적으로 활성화하려면 통과율이 100%에 도달해야 합니다.
메시지 발송 코드 작성
WhatsApp Business API의 실제 데이터 통계에 따르면, 올바르게 최적화된 발송 코드는 메시지 전송률을 92%에서 99.7%로 높이고 평균 응답 시간을 800밀리초 이내로 압축할 수 있습니다. 표준 발송 모듈은 일반적으로 5가지 핵심 모듈을 포함합니다: 인증 모듈(Authentication), 페이로드 구성 모듈(Payload Building), 암호화 모듈(Encryption), 발송 모듈(Dispatching) 및 재시도 메커니즘 모듈(Retry Mechanism)이며, 각 모듈의 실행 시간은 200밀리초 이내로 제어해야 합니다. 다음은 구체적인 구현 세부 정보입니다:
인증 모듈에서는 모든 HTTP 요청 헤더에 3가지 핵심 매개변수를 포함해야 합니다: Authorization 헤더는 Bearer Token 형식(64자리 문자 길이)을 사용해야 하며, Content-Type은 application/json으로 설정해야 하고, API 버전 번호(예: v17.0)를 포함해야 합니다. 토큰 유효 기간은 보통 24시간이며, 만료 후에는 OAuth 2.0 절차를 통해 갱신해야 합니다(갱신 토큰 유효 기간은 60일). 코드에 자동 토큰 갱신 메커니즘을 구현하는 것이 좋으며, 401 오류 코드가 감지되면 자동으로 갱신 절차를 트리거해야 하며, 이 프로세스는 보통 1500밀리초가 소요됩니다.
페이로드 구성 모듈은 Meta에서 규정한 JSON 구조를 엄격하게 준수해야 합니다. 표준 텍스트 메시지 페이로드는 12개의 필수 필드와 8개의 선택 필드를 포함하며, 총 크기는 10KB를 초과할 수 없습니다. 다음은 주요 메시지 유형의 구조 비교입니다:
| 메시지 유형 | 기본 필드 수 | 최대 크기 | 미디어 지원 | 콜백 데이터 |
|---|---|---|---|---|
| 텍스트 메시지 | 5 필드 | 1000자 | 지원 안 함 | 선택 사항 |
| 이미지 메시지 | 8 필드 | 16MB | JPEG/PNG | 필수 |
| 비디오 메시지 | 9 필드 | 64MB | MP4/3GP | 필수 |
| 문서 메시지 | 7 필드 | 100MB | PDF/DOCX | 필수 |
| 템플릿 메시지 | 11 필드 | 1024자 | 지원 안 함 | 필수 |
특별 주의: 모든 미디어 파일은 먼저 Meta 서버에 업로드하여 미디어 ID(26자리 문자 길이)를 획득해야 하며, 이 업로드 프로세스는 일반적으로 3~5초(파일 크기에 따라 다름)가 소요됩니다. 획득한 미디어 ID의 유효 기간은 30일이며 재사용 가능합니다.
암호화 모듈은 TLS 1.2 이상 프로토콜을 사용하여 종단 간 암호화를 수행해야 합니다. AES-256-GCM 알고리즘을 사용하여 메시지 본문을 암호화하는 것이 좋으며, 키 길이는 256비트에 도달해야 합니다. 각 요청은 고유한 초기 벡터(IV, 12바이트 길이)와 인증 태그(Authentication Tag, 16바이트 길이)를 생성해야 합니다. 암호화 프로세스는 로컬에서 완료되어야 하며, 전체 암호화 및 복호화 프로세스로 인한 지연은 300밀리초 이내로 제어해야 합니다.
발송 모듈은 네트워크 불안정 문제를 처리해야 합니다. 3단계 시간 초과 메커니즘을 설정하는 것이 좋습니다: 연결 시간 초과(Connect Timeout)는 3초, 쓰기 시간 초과(Write Timeout)는 5초, 읽기 시간 초과(Read Timeout)는 10초로 설정합니다. 서버가 5xx 오류를 반환하면 즉시 재시도 메커니즘을 트리거해야 합니다(최대 3회 재시도, 각 간격 증분: 첫 번째 2초, 두 번째 4초, 세 번째 8초). 동시에 API 호출 빈도를 모니터링하고, 초당 1건의 메시지 기본 속도 제한을 엄격히 준수해야 합니다(초당 5건으로 상향 신청 가능).
발송 절차 테스트
업계 실제 데이터에 따르면, 충분히 테스트되지 않은 WhatsApp 메시지 발송 시스템은 평균 12%의 전송 실패율을 보이지만, 전체 테스트 절차를 거친 시스템은 실패율을 0.3% 이하로 낮출 수 있습니다. 완전한 테스트 주기는 일반적으로 72시간이 소요되며, 3가지 주요 단계로 구성됩니다: 단위 테스트(커버리지 95% 이상 달성 필요), 통합 테스트(1000명의 동시 사용자 시뮬레이션) 및 부하 테스트(24시간 논스톱 실행). 테스트 프로세스 중 17가지 핵심 지표를 모니터링해야 하며, 이 중 가장 중요한 것은 전송 성공률, 응답 시간 중앙값 및 오류율 피크입니다. 다음은 구체적인 테스트 구현 세부 정보입니다:
먼저 테스트 환경을 구축할 때, Meta에서 제공하는 샌드박스 환경(Sandbox Environment)을 사용해야 합니다. 이 환경은 프로덕션 환경과 완전히 분리되어 있지만 기능은 동일합니다. 샌드박스 환경은 최대 50개의 테스트 번호 시뮬레이션을 지원하며, 각 번호는 월별 1000개의 무료 테스트 메시지를 보낼 수 있습니다. 테스트 시 전용 API 인증서를 구성해야 하며, 이 인증서는 유효 기간이 30일이며 샌드박스 환경에서만 사용할 수 있습니다. 자동화된 테스트 도구를 사용하여 테스트 스크립트를 구축하고 실제 사용자 행동을 시뮬레이션하는 것이 좋습니다: 텍스트 메시지 전송(비율 60%), 멀티미디어 메시지(비율 25%), 템플릿 메시지(비율 15%) 세 가지 유형을 포함합니다.
핵심 테스트 지표 임계값 설정: 전송 성공률은 ≥99.5%, 평균 응답 시간은 ≤1200밀리초, 오류율은 ≤0.2%, 시스템 가용성은 ≥99.9%여야 합니다. 각 지표는 경고 임계값(제한 값의 80% 도달 시 경고)과 위험 임계값(제한 값의 95% 도달 시 즉시 테스트 중단)을 설정해야 합니다.
기능 테스트 단계에서는 8가지 핵심 시나리오를 검증해야 합니다: 정상 메시지 발송, 첨부 파일이 있는 메시지, 그룹 메시지, 템플릿 메시지 심사, 상태 콜백 수신, 오류 처리 메커니즘, 속도 제한 트리거 및 자동 재시도 로직. 각 시나리오에 대해 최소 200회의 테스트 사례를 실행해야 하며, 총 테스트 횟수는 1600회 이상이어야 합니다. 특히 템플릿 메시지 테스트에 주의해야 합니다. 이는 템플릿 심사를 미리 제출해야 하므로(심사 시간 2~48시간), 테스트 시 지원되는 모든 변수 형식을 포함해야 합니다: 텍스트 변수(최대 10개), 통화 변수(42가지 통화 지원), 날짜/시간 변수(12가지 형식 지원) 및 미디어 변수(이미지 및 문서 지원).
성능 테스트는 세 가지 강도 수준으로 나누어 수행해야 합니다: 먼저 기본 부하 테스트(초당 5건의 메시지 발송 시뮬레이션, 1시간 지속), 다음으로 피크 부하 테스트(초당 20건의 메시지 시뮬레이션, 30분 지속), 마지막으로 내구성 테스트(초당 10건의 메시지 시뮬레이션, 24시간 지속). 이 과정에서 시스템의 17가지 성능 지표를 기록해야 합니다: CPU 사용률(70% 미만이어야 함), 메모리 사용량(80% 미만이어야 함), 네트워크 처리량(100Mbps에 도달해야 함), 데이터베이스 응답 시간(50밀리초 미만이어야 함). 특히 시스템이 부하 한계에 도달했을 때의 동작에 초점을 맞추어 오류율이 갑자기 5%를 초과하지 않도록 해야 합니다.
실제 환경 테스트 단계에서는 3가지 다른 시간대를 선택하여 수행해야 합니다: 평일 오전 10시~12시(피크 시간), 저녁 8시~10시(서브 피크 시간) 및 새벽 2시~4시(로우 피크 시간). 각 시간대는 2시간 동안 지속적으로 테스트하며, 총 발송량은 500건의 메시지 이내로 제어합니다. 테스트 기간 동안 메시지 상태를 실시간으로 모니터링하고, 발송부터 전송까지의 평균 시간(3초 이내여야 함), 전송부터 읽음까지의 평균 시간(보통 60초 이내 변동)을 기록해야 합니다. 동시에 콜백 메커니즘을 검증해야 합니다: 100%의 상태 업데이트가 Webhook으로 올바르게 푸시되고 처리 지연이 500밀리초 미만인지 확인해야 합니다.
WhatsApp营销
WhatsApp养号
WhatsApp群发
引流获客
账号管理
员工管理
