このドキュメントでは、新しい埋め込み登録フローの中で、エンドクライアントに認証済みビジネス電話番号を提供する方法について説明します。認証済みビジネス電話番号は、開発者によってすでに認証されたビジネス電話番号です。この電話番号があれば、エンドクライアントが開発者にワンタイムパスワードを問い合わせる必要がなくなります。
認証済みビジネス電話番号は、一時的なWhatsApp Business認証済み電話番号オブジェクトによって表されることに注意してください。エンドクライアントがこれらの番号の1つを選択して新しい埋め込み登録フローを完了すると、一時オブジェクトは、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/v20.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/v20.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/v20.0
/106540352242922/verify_code?code=123456' \
-H 'Authorization: Bearer EAAJB...'
{ "success": true }
サポートされるクエリパラメーターについては、[WhatsApp Business認証済み電話番号] > [コードを認証]エンドポイントのリファレンスをご覧ください。
ステータスが認証済みになっている認証済み電話番号(またはそのような番号のセット)の用意ができたら、新しい埋め込み登録フローでそれらを表示します。
認証済みビジネス電話番号は、入力済みフォームデータにより、新しい埋め込み登録フローで表示できます。そのためには、ids
プロパティが設定されたpreVerifiedPhone
オブジェクトをsetup
オブジェクトに追加し、認証済みビジネス電話番号の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認証済みビジネス電話番号エンドポイントをクエリし、最新の認証時間を示すcode_verification_time
フィールドと認証期限を示すverification_expiry_time
フィールドを確認してください。
請求された電話番号IDの取得をご覧ください。
[WhatsApp Businessアカウント] > [電話番号]エンドポイントに対してGETを実行します。これにより、WhatsApp Businessアカウント上のすべてのWhatsApp Business電話番号が返されます。
結果セットで返される各オブジェクトのdisplay_phone_number
プロパティを解析します。オブジェクトにdisplay_phone_number
値として表示電話番号が設定されている場合(例: 16505551234
)、その番号はすでに請求済みです。そのオブジェクトのid
プロパティの値をコピーします。これは、新しいWhatsApp Business電話番号番号オブジェクトの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の認証済み電話番号オブジェクトに置き換えられました。 |
|
curl 'https://graph.facebook.com/v20.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" }