이 문서에서는 새로운 임베디드 가입 플로에서 최종 클라이언트에게 사전 인증된 비즈니스 전화번호를 제공하는 방법을 설명합니다. 사전 인증된 비즈니스 전화번호는 비즈니스 솔루션 제공업체에서 이미 인증한 비즈니스 전화번호이므로 최종 클라이언트가 일회용 비밀번호를 받기 위해 비즈니스 솔루션 제공업체에 연락할 필요가 없습니다.
사전 인증된 비즈니스 전화번호는 임시로 WhatsApp Business 사전 인증 전화번호 개체로 표시됩니다. 최종 클라이언트가 이러한 전화번호 중 하나를 선택하고 새로운 임베디드 가입 플로를 완료하면 임시 개체가 WhatsApp Business 전화번호 개체로 바뀌고 새로운 개체의 ID를 얻어서 해당 전화번호를 등록해야 합니다.
verification_expiry_time
필드로 표시됩니다.이 단계에 따라 사전 인증된 비즈니스 전화번호를 만들어서 임베디드 가입에 표시하고, 최종 클라이언트가 해당 전화번호를 요청한 후에 등록합니다.
비즈니스 계정 > 전화번호 추가 엔드포인트를 사용하여 비즈니스에서 사전 인증된 비즈니스 전화번호를 만듭니다. 그러면 전화번호 풀에 추가됩니다.
POST /<BUSINESS_ACCOUNT_ID>/add_phone_numbers ?phone_number=<PHONE_NUMBER>
요청이 성공하면 API가 WhatsApp Business 사전 인증 전화번호 ID를 반환합니다. 다음 요청에서 사용할 수 있도록 이 값을 캡처하세요.
{ "id": "<WHATSAPP_BUSINESS_PRE_VERIFIED_PHONE_NUMBER_ID>" }
curl -X POST 'https://graph.facebook.com/v19.0
/506914307656634/add_phone_numbers?phone_number=15550783881' \
-H 'Authorization: Bearer EAAJB...'
{ "id": "106540352242922" }
지원되는 전화번호 형식과 쿼리 매개변수는 비즈니스 계정 > 전화번호 추가 엔드포인트 참고 자료를 참조하세요.
WhatsApp Business 사전 인증 전화번호 > 코드 요청 엔드포인트를 사용하여 새로 만든 사전 인증된 비즈니스 전화번호에 대한 일회용 비밀번호를 SMS 또는 음성을 통해 요청합니다.
POST /<WHATSAPP_BUSINESS_PRE_VERIFIED_PHONE_NUMBER_ID>/request_code ?code_method=<CODE_METHOD> &language=<LANGUAGE>
요청이 성공하면 API가 true
를 반환합니다.
{ "success": <SUCCESS> }
또한 해당 전화번호에 대한 일회용 비밀번호가 포함된 SMS 또는 음성 메시지가 전송됩니다. 다음 요청에서 사용할 수 있도록 일회용 비밀번호를 캡처하세요.
WhatsApp code <CODE>
3회 반복됩니다.
Verification code is <CODE>
curl -X POST 'https://graph.facebook.com/v19.0
/106540352242922/request_code?code_method=SMS&language=en_US' \
-H 'Authorization: Bearer EAAJB...'
{ "success": true }
WhatsApp code 123-456
3회 반복됩니다.
Verification code is 123456
지원되는 코드 방법, 언어 및 쿼리 매개변수는 WhatsApp Business 사전 인증 전화번호 > 코드 요청 엔드포인트 참고 자료를 참조하세요.
WhatsApp Business 사전 인증 전화번호 > 코드 인증 엔드포인트를 사용하여 일회용 비밀번호로 비즈니스 전화번호를 인증합니다.
POST /<WHATSAPP_BUSINESS_PRE_VERIFIED_PHONE_NUMBER_ID>/verify_code ?code=<CODE>
요청이 성공하면 API가 true
를 반환하고 비즈니스 전화번호에서 code_verification_status
가 90일 동안 VERIFIED
로 설정됩니다.
{ "success": <SUCCESS> }
curl -X POST 'https://graph.facebook.com/v19.0
/106540352242922/verify_code?code=123456' \
-H 'Authorization: Bearer EAAJB...'
{ "success": true }
지원되는 쿼리 매개변수는 WhatsApp Business 사전 인증 전화번호 > 코드 인증 엔드포인트 참고 자료를 참조하세요.
사전 인증된 비즈니스 전화번호가 인증 상태가 되면 새로운 임베디드 가입 플로에 표시합니다.
미리 입력된 양식 데이터를 통해 새로운 임베디드 가입에 사전 인증된 비즈니스 전화번호를 표시할 수 있습니다. 이를 위해서는 ids
속성을 setup
개체로 설정한 preVerifiedPhone
개체를 추가하고 사전 인증된 비즈니스 전화번호의 ID를 ids
속성에 문자열 배열로 할당합니다.
{ scope: '<SCOPE>', extras: { feature: '<FEATURE>', setup: { preVerifiedPhone: { ids: [<IDS>] } } } }
예를 들면 다음과 같습니다.
{ scope: 'business_management,whatsapp_business_management', extras: { feature: 'whatsapp_embedded_signup', version: 2, setup: { business: { name: 'Acme Inc.', email: 'johndoe@acme.com', phone: { code: 1, number: '6505551234' }, website: 'https://www.acme.com', address: { streetAddress1: '1 Acme Way', city: 'Acme Town', state: 'CA', zipPostal: '94000', country: 'US' }, timezone: 'UTC-08:00' }, phone: { displayName: 'Acme Inc.', category: 'ENTERTAIN', description: 'Gears and widgets' }, preVerifiedPhone: { ids: ['106540352242922','105954558954427'] } } } }
VERIFIED
상태의 사전 인증된 비즈니스 전화번호를 인증 후 90일 이내에 요청하지 않을 경우, 상태는 UNVERIFIED
로 설정되지만 새로운 임베디드 가입 플로에는 여전히 표시됩니다. 최종 클라이언트가 인증되지 않은 전화번호를 요청하려고 시도하는 경우, 직접 인증을 완료해야 합니다. 즉, 비즈니스 솔루션 제공업체에 일회용 비밀번호를 요청해야 합니다.
이처럼 불편한 사용자 경험을 방지하려면 전화번호를 인증한 시점을 추적하고 인증되지 않은 상태로 돌아가기 전에 다시 인증하는 것이 좋습니다.
주어진 사전 인증된 비즈니스 전화번호를 마지막으로 인증한 시점을 모를 경우, WhatsApp Business 사전 인증 전화번호 엔드포인트를 쿼리하고 최신 인증 시간과 인증 만료 시간을 나타내는 code_verification_time
및 verification_expiry_time
필드를 읽으세요.
요청된 전화번호 ID 가져오기를 참조하세요.
WhatsApp Business 계정 > 전화번호 엔드포인트에 GET 요청을 실행하면 WhatsApp Business 계정의 모든 WhatsApp Business 전화번호가 반환됩니다.
결과 세트에 반환된 각 개체에서 display_phone_number
속성에 대해 파싱합니다. 개체에서 표시 전화번호(예: 16505551234
)가 display_phone_number
값일 경우에는 해당 전화번호가 요청된 것입니다. 이제는 이 값이 이 전화번호를 나타내는 새로운 WhatsApp Business 전화번호 개체의 ID이므로 개체의 id
속성 값을 복사합니다(이전의 ID는 더 이상 작동하지 않습니다).
또는 field
가 확장된 동일한 엔드포인트를 사용하여 display_phone_number
필드를 요청하고 표시 전화번호를 지정할 수 있습니다. 예를 들면 다음과 같습니다.
GET /102290129340398/phone_numbers?display_phone_number=16505551234
WhatsApp Business 전화번호 개체를 해당 표시 전화번호와 함께 반환하는 경우 해당 전화번호는 요청된 것이므로 개체의 id
를 복사해야 합니다.
비즈니스 계정 > 사전 인증된 전화번호 엔드포인트를 사용하여 비즈니스 계정의 사전 인증된 비즈니스 전화번호 풀에서 인증 상태와 관계없이 모든 WhatsApp Business 사전 인증 전화번호 개체의 리스트를 가져옵니다.
GET /<BUSINESS_ACCOUNT_ID>/preverified_numbers
결과는 생성 시간 순서대로 자동 정렬됩니다. 또한 필드 확장을 사용하여 code_verification_status
필드를 요청하고 API가 인증 상태가 표시된 사전 인증된 비즈니스 전화번호만 반환하도록 할 수 있습니다.
GET /<BUSINESS_ACCOUNT_ID>/preverified_numbers?code_verification_status=VERIFIED
비즈니스 > 사전 인증된 전화번호 공유 엔드포인트로 POST 요청을 보내서 비즈니스 파트너에게 사전 인증된 비즈니스 전화번호를 공유하거나 동일한 엔드포인트로 DELETE 요청을 보내서 공유를 취소할 수 있습니다.
공유된 사전 인증된 비즈니스 전화번호는 비즈니스 파트너가 임베디드 가입 플로에 표시할 수 있습니다.
여러 비즈니스 파트너에게 전화번호를 공유하는 경우, 임베디드 가입에 전화번호가 표시되기 전에 파트너가 공유된 사전 인증된 전화번호 리스트를 가져오도록 권하는 것이 좋습니다. 그러면 파트너가 이미 요청된 전화번호를 표시하려고 시도할 가능성이 줄어듭니다(요청된 전화번호는 플로에 표시되지 않지만 파트너는 이를 모르고 전화번호가 표시되지 않는 이유를 궁금해할 수 있습니다).
POST /<BUSINESS_ID>/share_preverified_numbers ?partner_business_id=<PARTNER_BUSINESS_ID> &preverified_id=<PREVERIFIED_ID>
DELETE /<BUSINESS_ID>/share_preverified_numbers ?partner_business_id=<PARTNER_BUSINESS_ID> &preverified_id=<PREVERIFIED_ID>
요청이 성공하면 API가 true를 반환합니다. 공유하는 경우, 비즈니스 파트너에게 새로 공유된 사전 인증된 전화번호에 대해 알리고 해당 전화번호의 ID를 제공하세요. 공유를 취소하는 경우 해당 전화번호는 더 이상 임베디드 가입의 파트너 구현에 표시되지 않습니다.
{ "success": <SUCCESS> }
curl -X POST 'https://graph.facebook.com/v17.0/share_preverified_numbers?partner_business_id=506914307656634&preverified_id=1706193509821738' \ -H 'Authorization: Bearer EAAH0...'
curl -X DELETE 'https://graph.facebook.com/v17.0/share_preverified_numbers?partner_business_id=506914307656634&preverified_id=1706193509821738' \ -H 'Authorization: Bearer EAAH0...'
{ "success": true }
임베디드 가입 전화번호 선택을 완전히 우회해서 온보딩된 최종 클라이언트의 WhatsApp Business 계정에 사전 인증된 비즈니스 전화번호를 프로그래밍 방식으로 등록할 수 있습니다. 이를 위해서는 전화번호 등록 문서의 단계를 따르되, 1단계에서 사전 인증된 비즈니스 전화번호 ID를 사용한 후 4단계로 건너뛰세요.
사전 인증된 비즈니스 전화번호 ID를 사용하여 WhatsApp Business 계정에서 WhatsApp Business 전화번호를 만들려면 이 요청을 사용합니다. 이는 1단계를 대체합니다.
POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>/phone_numbers
{ "preverified_id": "<PREVERIFIED_ID>", "country_dial_code": "<COUNTRY_DIAL_CODE>", "display_phone_number": "<DISPLAY_PHONE_NUMBER>", "verified_name": "<VERIFIED_NAME>" }
자리 표시자 | 설명 | 예시 값 |
---|---|---|
문자열 | 필수 항목. 사전 인증된 비즈니스 전화번호의 ID입니다. |
|
문자열 | 필수 항목. 사전 인증된 비즈니스 전화번호의 국가 다이얼 번호입니다. |
|
문자열 | 필수 항목. 사전 인증된 비즈니스 전화번호의 표시 전화번호입니다. |
|
문자열 | 필수 항목. 사전 인증된 비즈니스 전화번호의 표시 이름입니다. |
|
요청이 성공하면 API가 WhatsApp Business 전화번호의 ID로 응답합니다. 이 ID를 사용하여 해당 전화번호를 등록합니다(전화번호 등록 문서의 4단계).
{ "id": "<ID>" }
자리 표시자 | 설명 | 예시 값 |
---|---|---|
| WhatsApp Business 전화번호의 ID입니다. 이 개체는 WhatsApp Business 사전 인증 전화번호 개체를 대체했습니다. |
|
curl 'https://graph.facebook.com/v19.0
/506914307656634/phone_numbers' \
-H 'Content-Type: text/plain' \
-H 'Authorization: Bearer EAAH7...' \
-d '
{
"preverified_id": "6635066806614622",
"country_dial_code": "1",
"display_phone_number": "5550783881",
"verified_name": "Lucky Shrub"
}'
{ "id": "108692048990658" }