이 가이드에서는 고객에게 클라우드 API를 제공하기 위해 솔루션 파트너가 진행해야 하는 절차를 살펴봅니다. 단계는 크게 4가지로 나뉩니다.
단계를 모두 완료하면 월간 업데이트를 확인해 주세요.
시작하기 전에 개발자 문서와 Postman 컬렉션을 읽는 것이 좋습니다. 그러면 클라우드 API를 시작하고 전화번호를 마이그레이션하는 방법 등의 클라우드 API 사용 방법을 이해하는 데 도움이 됩니다.
임베디드 가입을 사용하여 새로운 고객을 클라우드 API에 온보딩해야 합니다. 아직 하지 않았다면 임베디드 가입을 통합하고 출시하세요. 임베디드 가입은 고객을 등록하는 가장 빠르고 쉬운 방법이며, 고객이 5분 내로 메시지 전송을 시작할 수 있습니다.
이제 먼저 어떤 고객을 클라우드 API로 마이그레이션할지 생각해 보세요. 일반적으로는 모든 고객을 온프레미스에서 클라우드 API로 마이그레이션하는 것을 권장하지만 각 고객의 요구 사항이 다를 수 있습니다. 마이그레이션할 고객을 생각할 때 다음을 고려해 보세요.
고려 사항 | 추가적 컨텍스트 |
---|---|
고객의 처리량과 메시지 볼륨을 클라우드 API에서 지원하는가? | 클라우드 API는 대부분의 비즈니스에 텍스트/미디어와 수신/발신을 포함해서 초당 250건의 누적 피크 처리량을 지원합니다. |
클라우드 API에서 고객의 규정 준수 요구 사항을 충족하는가? | 클라우드 API는 GDPR을 준수하고 SOC 2 인증을 받았습니다. 서버는 북미와 유럽에서 호스팅됩니다. |
고객이 클라우드 API에서 지원하는 기능을 사용하는가? | 대부분 주요 기능을 지원합니다. 전체 리스트는 여기를 참조하세요. |
어떤 고객이 마이그레이션할지 아는 경우 마이그레이션 계획과 일정을 빌드할 수 있습니다.
계획을 세우는 동안 두 가지 시나리오에 대비해서 시스템을 디자인하세요. 하나는 신규 고객을 온보딩하는 것이고 다른 하나는 기존 고객을 온프레미스에서 클라우드 API로 마이그레이션하는 것입니다. 마이그레이션 시나리오의 경우 기존 온프레미스 인스턴스를 백업하고 해당 전화번호를 클라우드 API로 마이그레이션할 계획을 세우세요.
먼저 기존 고객에게 마이그레이션에 대해 알릴지 결정해야 합니다. 그런 다음 클라우드 API 설정을 지원하기 위한 문서를 작성하거나 업데이트할지 결정해야 합니다.
클라우드 API의 호스팅 비용은 Meta에서 부담하므로 그에 맞게 가격을 업데이트할지 결정해야 합니다.
클라우드 API를 사용하려면 솔루션 파트너에 다음과 같은 자산이 필요합니다.
자산 | 특정 지침 |
---|---|
비즈니스 관리자 | 기존 비즈니스 관리자를 사용하거나 새로운 비즈니스 관리자를 설정해야 합니다. 비즈니스 관리자 ID를 저장합니다. |
WhatsApp Business 계정(WABA) | 도움이 필요한 경우 WhatsApp Business API를 위한 WhatsApp Business 계정 만들기를 참조하세요. |
앱이 없을 경우 '비즈니스' 유형으로 앱을 만들어야 합니다. 표시 이름과 담당자 이메일을 앱에 추가합니다. (솔루션 파트너)는 앱이 앱 검수를 거치도록 하고 다음 권한에 대해 고급 액세스를 요청해야 합니다.
솔루션 파트너는 여러 클라이언트와 WABA에서 동일한 Meta 앱을 자유롭게 사용할 수도 있습니다. 하지만 각 앱은 하나의 Webhooks 엔드포인트만 있어야 하며 각 앱이 앱 검수를 통과해야 합니다. | |
시스템 사용자 | 도움이 필요한 경우 시스템 사용자를 비즈니스 관리자에 추가를 참조하세요. 현재
프로덕션 배포에는 운영자 시스템 사용자를 사용하는 것이 좋습니다. 자세한 내용은 비즈니스 관리자 역할 및 권한 정보를 참조하세요. |
비즈니스 전화번호 | 비즈니스가 메시지 전송에 사용할 전화번호입니다. SMS/음성 통화를 통해 전화번호를 인증해야 합니다. 솔루션 파트너 및 직접 비즈니스: 자체 전화번호를 사용하고 싶다면 WhatsApp 관리자에 전화번호를 추가하고 그래프 API를 통해 인증 엔드포인트로 인증해야 합니다. 솔루션 파트너를 사용하는 비즈니스: 자체 전화번호를 사용하고자 하는 경우 솔루션 파트너의 임베디드 가입 플로를 사용하여 전화번호를 추가하고 인증해야 합니다. 전화번호의 인증 상태는 온프레미스와 클라우드 API 간의 마이그레이션에 영향을 미치지 않습니다. 임베디드 가입에 액세스하여 전화번호를 인증할 수 없을 경우 온프레미스 솔루션으로 전화번호를 인증한 다음, 해당 번호를 클라우드 API로 마이그레이션하는 것이 좋습니다. 클라우드 API에 온보딩할 수 있는 비즈니스 전화번호 수는 무제한입니다. |
소비자 전화번호 | 현재 소비자 WhatsApp 앱에서 사용하는 전화번호입니다. 이 전화번호는 비즈니스 전화번호에서 전송한 메시지를 수신하게 됩니다. |
WhatsApp Business 메시징 클라우드 API에 액세스하려면 먼저 비즈니스를 대신해 WhatsApp Business 플랫폼 서비스 약관을 수락해야 합니다.
이를 위해서는 WhatsApp 관리자로 이동하여 정보 배너의 서비스 약관을 수락합니다.
클라우드 API의 기존 베타 파트너인 경우, 90일의 유예 기간이 주어집니다. 즉, 2022년 7월 5일 전까지 약관에 액세스해야 하며, 그렇지 않을 경우 액세스 권한이 상실됩니다.
온프레미스 API에서 마이그레이션하는 비즈니스를 비롯한 모든 신규 클라우드 API 비즈니스의 경우 클라우드 API를 사용하려면 서비스 약관을 수락해야 합니다. 서비스 약관을 수락할 때까지 등록 호출은 실패합니다.
개발자는 서비스 약관을 수락해야 합니다. 솔루션 파트너인 경우 고객에게 수락을 요구할 필요가 없습니다.
그래프 API 호출은 인증에 액세스 토큰을 사용합니다. 자세한 내용은 액세스 토큰을 참조하세요. 시스템 사용자를 통해 토큰을 생성하는 것이 좋습니다.
시스템 사용자 액세스 토큰을 생성하는 방법:
whatsapp_business_management
와 whatsapp_business_messaging
을 선택합니다. 토큰 생성을 클릭합니다.Webhooks를 설정하면 WhatsApp Business 플랫폼에서 실시간 HTTP 알림을 받을 수 있습니다. 즉, 예를 들어 고객에게 메시지를 받거나 WhatsApp Business 계정(WABA)에 변경 사항이 있을 때 알림을 받게 됩니다.
Webhooks를 설정하려면 Meta 및 WhatsApp의 요구 사항에 맞는 URL로 인터넷과 연결된 웹 서버를 만들어야 합니다. 그 방법에 대한 자세한 내용은 엔드포인트 만들기를 참조하세요. 테스트 목적으로 엔드포인트가 필요할 경우 테스트 Webhooks 엔드포인트를 생성할 수 있습니다.
엔드포인트가 준비되면 Meta 앱에서 사용하도록 구성합니다.
앱 대시보드에서 WhatsApp 제품을 찾아서 구성을 클릭합니다. 그런 다음, Webhooks 섹션을 찾아서 Webhooks 구성을 클릭합니다. 클릭 후 화면에 두 가지 항목을 묻는 대화 상자가 나타납니다.
정보를 추가한 후 인증 및 저장을 클릭합니다.
앱 대시보드로 돌아와 왼쪽 패널에서 WhatsApp > 구성을 클릭합니다. Webhooks에서 관리를 클릭합니다. 알림을 받을 수 있는 모든 개체가 나와 있는 대화 상자가 열립니다. 사용자의 메시지를 받으려면 메시지에 대한 구독을 클릭합니다.
보유한 모든 앱에 대해 Webhooks를 한 번씩만 설정해야 합니다. 동일한 Webhooks를 사용하여 여러 WhatsApp Business 계정에서 여러 이벤트 유형을 수신할 수 있습니다. 자세한 내용은 Webhooks 섹션을 참조하세요.
각 Meta 앱은 항상 엔드포인트를 하나만 구성할 수 있습니다. Webhooks 업데이트를 여러 엔드포인트로 보내야 하는 경우 여러 개의 Meta 앱이 필요합니다.
올바른 계정에 대한 알림을 받으려면 앱을 구독하세요.
curl -X POST \
'https://graph.facebook.com/v19.0
/WHATSAPP_BUSINESS_ACCOUNT_ID/subscribed_apps' \
-H 'Authorization: Bearer ACCESS_TOKEN'
아래와 같은 응답을 받을 경우 이 계정의 전화번호에 대한 모든 Webhooks 이벤트가 구성된 Webhooks 엔드포인트로 전송됩니다.
{ "success": true }
메시지를 전송하려면 사용하고자 하는 전화번호를 등록해야 합니다. 이는 시작하기 전에에서 언급한 비즈니스 전화번호입니다.
등록을 진행할 수 있으려면 해당 전화번호 ID를 찾아야 합니다. 전화번호 ID를 가져오려면 다음과 같이 API 호출을 보냅니다.
curl -X GET \
'https://graph.facebook.com/v19.0
/WHATSAPP_BUSINESS_ACCOUNT_ID/phone_numbers' \
-H 'Authorization: Bearer ACCESS_TOKEN'
요청이 성공할 경우 응답에는 WABA와 연결된 모든 전화번호가 포함됩니다.
{ "data": [ { "verified_name": "Jasper's Market", "display_phone_number": "+1 631-555-5555", "id": "1906385232743451", "quality_rating": "GREEN" }, { "verified_name": "Jasper's Ice Cream", "display_phone_number": "+1 631-555-5556", "id": "1913623884432103", "quality_rating": "NA" } ] }
등록하려는 전화번호의 ID를 저장합니다. 이 엔드포인트에 대한 자세한 내용은 전화번호 읽기를 참조하세요.
온프레미스 API에서 클라우드 API로 전화번호를 마이그레이션하고 있는 경우 클라우드 API로 전화번호를 등록하기 전에 실행해야 할 추가 단계가 있습니다. 전체 프로세스는 온프레미스와 클라우드 API 간 마이그레이션을 참조하세요.
전화번호 ID가 있으면 등록이 가능합니다. 등록 API 호출에서 다음과 같이 두 가지 작업을 동시에 수행합니다.
2단계 인증 설정은 클라우드 API 사용을 위한 요구 사항입니다. 2단계 인증을 설정하지 않으면 다음과 같이 온보딩 실패 메시지를 받게 됩니다.
요청 샘플:
curl -X POST \
'https://graph.facebook.com/v19.0
/FROM_PHONE_NUMBER_ID/register' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"messaging_product": "whatsapp","pin": "6_DIGIT_PIN"}'
응답 샘플:
{ "success": true }
전화번호는 임베디드 가입 플로를 거친 후 14일 이내에 반드시 등록해야 합니다. 이 기간 내에 전화번호를 등록하지 않으면 다시 임베디드 가입 플로를 거친 후 등록해야 합니다.
참여하는 고객이 비즈니스로 메시지를 보내면 24시간 동안 해당 고객과 무료로 메시지를 주고받을 수 있습니다. 이 기간을 고객 서비스 기간이라고 합니다. 테스트를 위해 원하는 만큼 메시지를 전송할 수 있도록 이 기간을 활성화하는 것이 좋습니다.
개인 WhatsApp iOS/Android 앱에서 조금 전 등록한 전화번호로 메시지를 보냅니다. 메시지가 전송되면 다음과 같은 형식의 알림과 함께 Webhooks로 메시지가 수신됩니다.
{ "object": "whatsapp_business_account", "entry": [ { "id": "WHATSAPP_BUSINESS_ACCOUNT_ID", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "16315551234", "phone_number_id": "PHONE_NUMBER_ID" }, "contacts": [ { "profile": { "name": "Kerry Fisher" }, "wa_id": "16315555555" } ], "messages": [ { "from": "16315555555", "id": "wamid.ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1602139392", "text": { "body": "Hello!" }, "type": "text" } ] }, "field": "messages" } ] } ] }
고객 서비스 기간을 활성화하면 이전 단계에서 사용한 소비자 번호로 테스트 메시지를 전송할 수 있습니다. 이를 위해서는 다음과 같이 API 호출을 보냅니다.
curl -X POST \
'https://graph.facebook.com/v19.0
/FROM_PHONE_NUMBER_ID/messages' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"messaging_product": "whatsapp", "to": "16315555555","text": {"body" : "hello world!"}}'
호출에 성공하면 응답에 메시지 ID가 포함됩니다. 이 ID를 사용하여 Webhooks를 통해 메시지의 진행 상황을 추적합니다. 이 ID의 최대 길이는 128자입니다.
응답 샘플:
{ "id":"wamid.gBGGFlaCGg0xcvAdgmZ9plHrf2Mh-o" }
클라우드 API를 사용하는 경우 전화번호에 WhatsApp ID가 있는지 명시적으로 확인할 방법을 더 이상 제공하지 않습니다. 클라우드 API를 사용하여 누군가에게 메시지를 보내려면 고객이 옵트인한 후 고객의 전화번호로 직접 메시지를 전송하면 됩니다. 관련 예시는 참고 자료, 메시지를 참조하세요.
매월 첫 번째 화요일에 클라우드 API 업데이트를 릴리스합니다. 여기에는 새로운 기능과 개선 사항이 포함됩니다. 클라우드 API가 자동으로 업데이트되므로 새로운 기능을 사용하기 위해 별도의 조치를 취할 필요가 없습니다.
WhatsApp develops and operates the WhatsApp Business API, which enables businesses to communicate with WhatsApp consumer users on the WhatsApp network. When using the Cloud API, Meta will host the WhatsApp Business API for you and provide an endpoint for the WhatsApp service for your incoming and outgoing WhatsApp communications.
No, there is no difference in messaging prices between the Cloud API and the On-Premises API. Access to Cloud API is free, and we expect it to generate additional cost savings for developers. The two types of cost savings for the Cloud API are 1) set up cost (including server or external cloud provider cost), 2) ongoing cost of maintenance (including engineering time for API upgrades).
A Solution Partner can select which setup a given client should use. We recommend that the majority of clients use the Cloud API for ease of implementation and maintenance. Solution Partners can also continue to maintain integration with the On-Premises API.
We want to make it clear what it means to message with a business on WhatsApp. Some businesses may choose to use Meta or another company to help them manage and store their messages. When a business chooses to manage their messages with another company, we will let consumers know by showing a different system message. Learn more.
We expect Cloud API to provide the same key features as the On-Premises API soon, including user change notifications and sticker pack management. Our goal is for the Cloud API to become the preferred platform for new features.
We will release updates monthly with new features and improvements. There is no work required to access these features - the Cloud API updates automatically.
No, we will continue to provide the On-Premises API for now. See On-Premises API for information.
The Cloud API architecture significantly simplifies the Solution Partner's operational and infrastructure requirements to integrate with WhatsApp Business Platform. First, it removes the infrastructure requirements to run Business API docker containers (CAPEX savings). Second, it obviates the need of operational responsibilities to manage the deployment (OPEX savings). For details, refer to the architecture diagram comparing the On-Premises and Cloud API deployments.
Solution Partners and direct clients do not need the WebApp and CoreApp containers that are used in the On-Premises API. Meta will manage all database data and media data on behalf of the Solution Partner or direct client.
We will have disaster recovery and data replication across multiple regions. The expected downtime would be within our SLA and usually in the order of less than a minute to less than five minutes.
As your on-premises performance depends heavily on your hardware, software, and connectivity to WhatsApp servers, if you wish to understand these differences, you can perform your own load tests on Cloud API as you might have done for your own on-premises installation. You can also refer to our performance comparison to understand more details around how the on-premise and Cloud APIs compare.
클라우드 API는 비즈니스가 클라우드 API 로컬 스토리지를 사용하기로 선택하지 않았다면 Meta 데이터 센터 내에서 실행됩니다. Meta의 데이터 센터는 북미 및 유럽 연합에 위치해 있습니다.
이 질문에 대한 답변은 클라우드 API 개요, 암호화를 참조하세요.
유휴 상태인 메시지는 암호화됩니다. 이런 메시지는 30일 후에 자동으로 삭제됩니다.
다른 모든 WhatsApp Business API 솔루션 파트너와 마찬가지로, Meta는 비즈니스를 대신하여 암호화 및 암호 해독 키를 관리합니다. 클라우드 API를 통해 메시지를 주고받기 위해, 클라우드 API가 비즈니스를 대신하여 암호화/암호 해독 키를 관리합니다. Meta는 클라우드 API를 운영하며 약관에 따라 메시지를 전달하기 위한 목적으로만 해당 서비스를 제공하도록 사용을 제한하고 있습니다. WhatsApp은 키 또는 메시지에 대한 액세스 권한이 없습니다.
Meta는 데이터 보호 및 개인정보 보호를 매우 중요하게 생각하며, 이에 따라 데이터 보호 관련 법률을 준수하기 위해 끊임없이 노력합니다. 클라우드 API는 Meta의 고객이 계속해서 개인정보보호 규정(GDPR)에 따른 의무 사항을 준수하도록 지원합니다. Meta는 관련 법률, 산업, 규정 요구 사항은 물론 업계 모범 사례를 준수합니다. 자세한 내용을 확인하세요.