本文為您介紹如何通過Meta官方提供的注冊工具進行WhatsApp Business賬號的注冊。使用嵌入式注冊(Embedded signup)可以大幅縮短您的注冊時間,嵌入式注冊簡化了注冊步驟,將注冊的全部步驟整合到了單個流程內,從而使得注冊時間可以由幾天縮短至幾分鐘。
前提條件
在進行嵌入式注冊前需要您完成以下操作:
操作步驟
Facebook開始啟用新版(版本2)嵌入式注冊流程,您可以使用extras對象中的version參數(可選)來控制最終用戶看到的嵌入式界面(流程)版本。
版本1用于初始嵌入式注冊流程,版本2用于新版嵌入式注冊流程。如果未指定版本(version),最終用戶將看到新版嵌入式注冊流程。
如果您未指定版本或指定版本為2時(默認情況下為未指定版本),可以直接綁定WABA-ChatappBindWaba。
請注意,Facebook最終將停止對版本1的支持。更多關于操作和信息,請參見Facebook官方文檔指定流程版本。
調用嵌入式注冊
在您注冊TP完成后,即可使用Facebook jssdk進行嵌入式操作。
代碼示例
const onRegisterButtonClick = ()=>{
// const { appId , configId } = this.state;
// 初始化sdk
window.fbq &&
window.fbq("trackCustom", "WhatsAppOnboardingStart", {
appId: <APP_ID>,
feature: "whatsapp_embedded_signup"
});
// sdk 回調函數
const sessionInfoListener = event => {
if (event.origin !== "https://www.facebook.com") return;
try {
const eventData = JSON.parse(event.data);
console.log("[sessionInfoListener] Event Data", eventData, event.data);
if (eventData.type === "WA_EMBEDDED_SIGNUP") {
if (
eventData.event === "FINISH" ||
eventData.event === "FINISH_ONLY_WABA"
) {
const { waba_id } = eventData.data;
console.log(
"[sessionInfoListener] waba_id",
waba_id
);
//TODO 調用Chatapp提供的ChatappBindWaba接口,此接口調用成功會返回custSpaceId,后續和之前一致
}
}
} catch {
console.log("Non JSON Response", event.data);
}
};
// 監聽 message 事件
window.addEventListener("message", sessionInfoListener);
// 喚起SDK
window.FB.login(
response => {
// 此處得到的accessToken不需要再調用Chatapp提供的ChatappEmbedSignUp接口(此接口已棄用)
if (response.authResponse) {
const accessToken = response?.authResponse?.accessToken;
} else {
console.log("User cancelled login or did not fully authorize.");
}
},
{
config_id: '<CONFIG_ID>',
// 從meta那邊獲取的configId
response_type: "code",
// response_type需要定義為code
override_default_response_type: true,
// 此參數需要定義為true
extras: {
feature: "whatsapp_embedded_signup",
// featureType:"only_waba_sharing",
// only_waba_sharing 代表嵌入式可以不錄入電話號碼(現在Chatapp單獨提供了新增電話號碼接口 AddChatappPhoneNumber)
// 如果需要在嵌入式時錄入電話號碼,就和之前保持一致即可
version: 2,
sessionInfoVersion: 3,
// 兩個版本需要定義為3
setup: {
solutionID" '<SOLUTION_ID>' // add solution ID here
},
}
}
);
}
// Example Button
<button onclick="launchWhatsAppSignup()">Login with Facebook</button>;
Facebook嵌入式具體操作請參考嵌入式注冊流程。
示例
正常返回示例(JSON格式)
{
"RequestId": "744c4b5c79c9432497a075bdfca3***",
"Code": "OK",
"Message": "null",
"AppId": "23h***",
"ConfigId":"3548941223****"
}
綁定WABA-ChatappBindWaba
通過Facebook JSSDK進行嵌入式注冊完成后,在監聽的message事件中,可以得到wabaId,將wabaId傳入ChatappBindWaba接口,平臺會將wabaId和您在阿里云的PID做關聯并返回唯一標識:custSpaceId,在后續接口操作中需要此參數作為約束。
接口文檔
示例
正常返回示例(JSON格式):
{
"RequestId": "90E63D28-E31D-1EB2-8939-A948664****",
"Code": "OK",
"Message": "無",
"Data": {
"CustSpaceId": "C0202939293****",
"WabaId": "29398*****"
}
}
查詢WABA商業信息-QueryWabaBusinessInfo
通過調用當前接口,獲取通過嵌入式授權的Facebook Business平臺的WABA商業信息。
接口文檔
QueryWabaBusinessInfo - 查詢waba商業信息
示例
正常返回示例(JSON格式):
{
"RequestId": "90E63D28-E31D-1EB2-8939-A948664****",
"Code": "OK",
"Message": "無",
"Data": {
"BusinessId": "19288282****",
"BusinessName": "Alibaba****",
"VerificationStatus": "verified",
"Vertical": "零售"
}
}