我們即將停用內部部署 API。請參閱我們的內部部署 API 停用文件以取得詳細資訊,並瞭解如何轉移到我們的新一代雲端 API。
請瀏覽 WhatsApp Business 平台狀態頁面,瞭解有關平台中斷服務的最新資訊。
由於端點之間沒有第三方存取內容,因此 WhatsApp 將與 Business API 用戶(該用戶管理其控制之伺服器上的 API 端點)的通訊視為端對端加密。
某些組織可能選擇將 WhatsApp Business API 端點委託給第三方企業解決方案供應商管理。在此情況中,通訊仍會使用相同的訊號協定加密。但是,由於 WhatsApp Business API 用戶選擇第三方來管理端點,因此 WhatsApp 不會將這些訊息視為端對端加密。未來在 2021 年中,此情況也適用於選擇使用 Facebook 代管之雲端型 API 版本的企業。
此外,若使用 HTTPS 呼叫 WhatsApp Business API 用戶端,該資料將採用 SSL 加密(從後端用戶端到 WhatsApp Business API 用戶端)。
請參閱我們的 WhatsApp Encryption Overview technical whitepaper(WhatsApp 加密概觀技術白皮書)以瞭解詳情。
不可以,每個實例只能執行單一帳號。如果您需要第二個測試帳號,第二個實例務必使用不同的手機號碼。
不可以!在任何指定時間,您只能使用單一電話號碼執行一個 WhatsApp Business API 用戶端實例。只要您註冊第二個實例,第一個實例將啟動並失敗。我們正在研究適當的解決方案來提供這項功能。若有任何最新消息,我們將隨時通知您。
WhatsApp Business 內部部署 API 用戶端需要儲存密鑰的資料庫,以解密商家與顧客之間傳送的訊息。使用傳送者和接收者密鑰加密 WhatsApp 上的所有訊息。將顧客密鑰儲存在其行動裝置上,並將商家密鑰儲存在商家的資料庫中。深入瞭解 WhatsApp 的安全性。
WhatsApp Business 雲端 API 是 Meta 託管商家資料庫的替代項目。雲端 API 允許您實作 WhatsApp Business API,無須自有伺服器的託管成本。瞭解詳情。
不行,目前無法在同一 WhatsApp Business API 用戶端設定中執行多個電話號碼。我們正在研究適當的解決方案,於將來提供這項功能。
不需要。WhatsApp Business API 用戶端會在 WhatsApp 伺服器上開啟連接至埠 5222 或 443 的出站 TCP 連線。TCP 流量會透過此長期連線傳輸。通常,防火牆會將此歸類為允許「出站流量和已建立的流量」。當然,封包在連線建立後將來回傳輸,但連線是由 WhatsApp Business API 用戶端啟動,因此不需要允許入站連線的規則。
相關要求視您的負載和情況而定。解決方案將在任何執行 Docker 的網路連線裝置上執行。例如,您可以在筆記型電腦上進行簡單的測試。
如果要設定為單一實例生產伺服器,建議至少配備 250 GB SSD、16 GB RAM 和 4 核心 CPU。不建議使用 HDD,因為 I/O 速度會成為負載的瓶頸。
如果要設定為多點連線生產伺服器,建議每個核心應用程式/Master 節點/網路應用程式容器至少配備 50 GB SSD、4 GB RAM 和 2 核心 CPU。
在大多數情況下,您應該從核心和網路容器的個別實體伺服器上執行資料庫。資料庫伺服器離運算電腦應只有幾毫秒的延遲。
此設定支援每秒傳送約 20 則訊息。
必須使用 MySQL 5.7.x 以及 PostgreSQL 9.5.x、9.6.x、10.x。使用先前的版本會出現 Unable to initialize config store
錯誤。
請按照 Docker MySQL 指南操作,使用 Docker 在本機設定 MySQL。
請按照 Docker PostgreSQL 指南操作,使用 Docker 在本機設定 PostgreSQL。
在大多數情況下,您應該從核心和網路容器的個別實體伺服器上執行資料庫。資料庫伺服器離運算電腦應只有幾毫秒的延遲。
沒有,我們並不支援 KOPS。但我們支援以 ECS 建立 AWS 解決方案。我們同時提供一般 Kubernetes Minikube 設定。
系統支援 MySQL 和 PostgreSQL。如果您自己執行 Docker,必須提供允許容器連線的 MySQL/PostgreSQL 資料庫。若使用 AWS 範本,系統會依預設值來設定 MySQL 資料庫。
不行。WhatsApp Business API 用戶端目前無法在 Docker for Windows 上執行。針對開發需求,建議使用 Linux 虛擬機器來執行 Docker。若是生產工作負載,建議使用 Linux 伺服器以避免相容性和效能問題。
您可以執行下列程式碼重新啟動 Docker 容器:
docker restart wacore<Current_WABA_Version>
docker restart webapp<Current_WABA_Version>
您可以使用下列程式碼檢查目前執行的版本:
docker ps
有,網路應用程式容器和核心應用程式容器的記錄檔輪替方式稍有不同:
您可以在外部觸發下列指令碼來清除容器的舊記錄檔:
docker exec CONTAINER_NAME /opt/whatsapp/bin/cleanup.sh
此指令碼同時適用於網路應用程式和核心應用程式容器。執行此指令碼後,系統將移除舊記錄檔,僅保留 30 個容器的記錄檔。
儲存空間已滿時,系統執行速度可能會開始變慢。這可能是由許多媒體檔案、訊息和大型記錄檔案所造成。系統會自動輪換記錄檔,但如果佔用空間漸增,刪除才是安全之道。
系統將訊息儲存在資料庫中,您可視需求加以刪除。此外,若在應用程式設定中將 pass_through
設為 false,系統在明確刪除訊息之前,會將其儲存在資料庫中。
系統會將用戶傳送給您的媒體檔案下載至媒體磁碟區。企業可自行決定要刪除哪些媒體檔案,而刪除任何媒體檔案通常都是安全的。您可以使用 docker inspect your-container-id
檢查媒體磁碟區資料夾的位置。
是的,在不涉及 WhatsApp 相關資料表的前提下,您可以透過其他方式使用資料庫。
資料庫資料表會儲存應用程式設定、聊天對話串、訊息、影音素材等相關資訊,這些都是應用程式運作所需的要素。
資料庫記憶體回收會定期清除 messages
和 messages_reciept_log
資料表,以協助管理資料庫。
記憶體回收器會保留特定訊息,以便成功進行傳送/處理。例如,保留傳入的訊息一段時間,以允許企業整合工具將訊息標記為已讀。
核心應用程式將以隨機的間隔(即每隔幾小時)執行記憶體回收。如此可避免因資料庫爭用而導致高可用性堆疊的潛在效能下降。
記憶體回收獨立於回呼佇列。例如,如果 Webhook 伺服器有 4 天無法使用,則將儲存回呼以在 Webhook 伺服器連接恢復時進行傳送。
請使用資料庫記憶體回收 services
API 端點清除 messageStore.messages
和 messageStore.messages_receipt_log
資料表中的訊息和對應的訊息回條。
透過 users
端點將用戶登出,可以將指派給該帳號的所有驗證權杖設定為無效。刪除用戶也具有相同效果,但這個動作的影響程度要大得多。請記住,透過 users
端點登入用戶,系統會傳回新的驗證權杖,但不會將該用戶已流通的驗證權杖設定為無效。擁有之前已佈建權杖的任何用戶將可繼續使用,直到該權杖過期或透過前述任一方法將其設為無效。
注意:請勿使用 WhatsApp Business API 向相同收件人重複傳送相同訊息。
造成投遞率不是 100% 的原因很多。一些常見案例包括用戶偶爾上網、停用一段時間,或者建立 優質用戶體驗。
能夠透過 WhatsApp 傳遞的訊息將具有非常高的投遞率。但是,無法傳遞訊息的原因很多。透過監控回呼,您可以存取訊息的確切狀態。這與使用簡訊傳送訊息有所不同,舉例來說,您無法存取最終傳遞狀態,重新傳送訊息可能在實際上產生不同的結果。
用戶手機暫停服務、沒電,或是遺失且準備購買新機並停用 SIM 卡,都可能造成訊息無法傳遞。企業用戶端的網路連線能力可能發生錯誤,也有可能系統未傳遞回呼(Webhooks)。您可以使用 health
節點監控這些情況。您可以開啟伺服器回條回呼,以瞭解該訊息已進入 WhatsApp 伺服器雲端。
如果用戶重新連線到網路,系統會將您已傳送的所有訊息傳遞給他們。對用戶來說,接收多則相同內容的訊息是一項糟糕的體驗。他們較可能封鎖您或提出抱怨,而您遭到禁用的機率會提高。
如果您傳送訊息並從 API 收到訊息編號,表示已執行可傳送該訊息的作業。請勿將相同內容重新傳送給相同收件人。
如果您在很長一段時間內發現投遞率較低,請透過以下方式提交支援案件: 直接支援。
當您傳送訊息時,一旦傳回訊息編號,即表示訊息要求已儲存在資料庫中。WhatsApp Business API 用戶端將繼續嘗試傳送該訊息,直到 WhatsApp 伺服器確認為止。這項流程沒有結束時間表。接著,WhatsApp 伺服器會嘗試將該訊息傳遞到用戶的手機。如果用戶的手機未在線上,WhatsApp 伺服器會將訊息儲存 30 天後捨棄。
當然可以!請聯繫您的 WhatsApp 代表並提出這項要求。
否,訊息抵達的順序不保證與傳送的順序相同。如果順序對您的使用案例至關重要,建議先接聽第一則訊息已傳遞的回呼,然後再觸發第二則訊息。
If there is a delay in a subset of numbers, then it is likely not an issue affecting the customers integration but rather an issue on the recipients end, these delays in delivery can happen for a number of reasons. See Send Message Performance, Delays for more information.
No this is not possible. Numbers that are registered under WABAs (WhatsApp Business Accounts) can only message regular WhatsApp accounts.
若要尋找媒體磁碟區的掛接點,可以執行 docker 命令。
docker volume inspect whatsappMedia
[ { "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/whatsappMedia/_data", "Name": "whatsappMedia", "Options": {}, "Scope": "local" } ]
然後,若要查看所有傳入的媒體檔案,可以使用接收的 Mountpoint
檔案路徑執行 ls
命令:
ls /var/lib/docker/volumes/whatsappMedia/_data/
若是 AWS 設定,系統會將媒體磁碟區掛接到主機上的 /mnt/wa/media
路徑。
上傳檔案大小的上限為 64 MB,此限制也適用於隨訊息傳送的任何圖像、文件或影片。
何時刪除由您決定。
上傳影音素材後,您將收到影音素材編號,可以用來傳送訊息說明已上傳影音素材的元素。傳送影音素材訊息時,WhatsApp Business API 將對影音素材進行加密並將其上傳到 WhatsApp 伺服器,並在伺服器中保留 14 天。之後,您可以決定透過提供影音素材編號來刪除影音素材,或保留供以後使用。雖然我們建議將影音素材保留 30 天,但仍由您根據企業政策或使用案例來決定留存率政策。
圖像可加入說明文字。Android 和 iPhone 圖像的說明文字皆以完整長度顯示。
若是文件,這類文字會取代檔案名稱。這並不會在用戶裝置顯示為說明文字,而是顯示為檔案名稱。iPhone 會顯示完整文字,Androids 則會截斷檔案名稱;這是目前 WhatsApp 在兩種裝置上的技術限制。
從 WhatsApp Business API 將圖像以相簿方式傳送時,必須連續傳送至少 4 個圖像。如果用戶的對話檢視在接收圖像時為使用中,必須等到下次瀏覽才能使用相簿檢視。
符合下列任一條件時,系統將不會建立相簿:
沒有,目前我們必須使用 AWS EFS 在核心應用程式和網路應用程式之間分享媒體磁碟區。
不行,目前我們不支援變更預設的媒體儲存空間路徑(/usr/local/wamedia/)。所有媒體儲存空間都必須位於此預設位置才能正常運作。
目前是 7 天。如果超過 7 天未更新快取,無論套件是否已有該元素,系統都將從伺服器中提取最新的語言套件。
WhatsApp Business API 用戶端會透過核心應用程式容器向您傳送 Webhook 回呼。因此,您必須將 Webhook 端點設定為可接受來自核心應用程式的入站要求。
如果 Webhook 無法傳送回呼,系統會將回呼放入重試佇列。您不會收到初始回呼失敗後傳送的任何回呼。只有當初始失敗的回呼成功之後,其餘回呼才會跟進。
若因故(例如用戶端離線)未能傳遞 Webhook 事件,或是 Webhook 要求傳回 200
之外的 HTTP 狀態碼,我們將重試傳遞 Webhook。我們會繼續重試傳遞,並將延遲增加至特定逾時(通常為 24 小時,但可能有所不同),或直到傳遞成功為止。
系統會將重複訊息傳送到 WhatsApp Webhook,因為系統的唯一保證是至少會收到一次(而不是只收到一次)。如果這會影響您處理訊息的方式,建議您根據訊息編號來刪除重複的 Webhook 訊息。
請再次檢查 pass_through
應用程式設定。如果您已啟用 pass_through
並使用 WhatsApp Business API 用戶端 v2.29.1
或以上版本,將不會收到任何讀取狀態回呼。
如果您想接收讀取狀態回呼,請停用 pass_through
應用程式設定。請注意,若停用 pass_through
,您的資料庫儲存可能會快速增加。如需管理資料庫的詳細資訊,請參閱資料庫管理文件。
這是由舊版 iOS 用戶端中的故障所引起。隨著一般用戶數量的升級,這些錯誤應該就會逐漸減少。
這是已知的問題。有時候,使用 CloudFormation 指令碼升級 WhatsApp Business API 用戶端也需要更新 RDS 資料庫堆疊。新的 RDS 堆疊與原始堆疊的主機名稱會不同,且 Docker 容器將無法連接到資料庫。解決方案是將 SSH 放入由 CloudFormation 建立的 EC2 實例,並使用新的主機名稱更新 whatsapp.conf
檔,然後重新啟動 Docker 容器,以便其擷取新的設定。
如果 Docker 橋接損毀,就會發生此錯誤。最好的補救措施是停止 Docker 服務並重新啟動。您也可以在容器上嘗試 docker restart
。
「拒絕連線」錯誤可能表示核心應用程式未執行,請使用 docker ps
查看核心應用程式是否執行中。如果沒有執行,請查看 Docker 記錄檔。核心應用程式可能無法連接到資料庫,請確認您已正確設定資料庫。
原因有很多。您的核心應用程式可能已關閉,或資料庫設定不正確。如果不是這些原因,請查看您的核心應用程式記錄檔(或是如果您正在執行多點連線,則查看主節點核心應用程式記錄檔)。如果您看到資料庫連接錯誤,可能是資料庫的連線數不足。如需此錯誤的相關資訊,請參閱 MySQL 文件或PostgreSQL 文件。
建議您提高資料庫中的資料庫連線數。1000 個資料庫連線應已足夠,但請依據充分資訊自行決定適當的連線數。如果錯誤仍然存在,請開立支援票證。
如果您看到此錯誤,但所缺少的必要參數是在 JSON 主體中設定,則可能是 JSON 剖析錯誤。若因 JSON 格式錯誤而無法剖析整個 JSON 酬載,就可能發生此錯誤。請檢查這些參數值是否含有無效的 JSON 字元,例如字尾的歸位字元。複製參數時,有時可能會附帶額外的空白,其可能含有會破壞 JSON 的字元。
當電話無法讀取範本訊息時,會發生結構無法使用的錯誤。
範本儲存在伺服器上。使用 訊息
節點傳送範本訊息時,系統只會將命名空間、語言、元素名稱和本地化參數傳送到電話,而不是傳送整個訊息。當這些值傳遞到電話時,系統會嘗試轉譯訊息。
如果轉譯過程中發生任何錯誤,系統會傳送 「結構無法使用」
錯誤到包含收件人和訊息編號的回呼網址。這些錯誤可能是肇因於命名空間錯誤、本地化參數不符、元素名稱錯誤等等。
請前往 Facebook 企業管理平台,在 WhatsApp 管理工具中查看正確的參數數量。請仔細檢查命名空間是否正確以及元素名稱是否存在。
沒有為所有使用中的範本建立翻譯是一項常見的錯誤來源。例如,如果您通常會傳送 2 個範本,並為其中一個範本新增語言翻譯,請務必同時為另一個範本新增該語言翻譯。如果您計劃支援多種語言,您應該為所有範本提供所有支援語言的翻譯。
好消息是, 「結構無法使用」
錯誤絕大部分是肇因於 訊息
API 呼叫中的錯誤,這可以藉由變更傳送承載來修復。
所有 WhatsApp Business API 用戶端組建自發行日起有效期為 6 個月。如果您看到此錯誤,請儘快升級到最新版本。
WhatsApp 進行實驗以衡量和瞭解 WhatsApp Business API 通知對用戶體驗和整體產品的一般影響。如果您傳訊的用戶是這些實驗的其中之一,即使他們已選擇接收通知,也不會收到您的通知。
如果設定 AWS 部署時收到類似下列錯誤,請嘗試更改為 8 個或更少字元的堆疊名稱。
國家/地區名稱(兩個字母代碼)[AU]:省/市名稱(完整名稱)[Some-State]:位置名稱(例如城市)[]:組織名稱(例如公司)[Internet Widgits Pty Ltd]:組織單位名稱(例如部門)[]:一般名稱(例如伺服器 FQDN 或您的名稱)[]:字串太長,必須為少於 64 個位元組長的一般名稱(例如伺服器 FQDN 或您的名稱)[]:電子郵件地址 []:錯誤,設定檔中未指定物件的問題導致憑證要求建立internal-wa-inc-name-LB-123456789.ap-southeast-1.elb.amazonaws.com 的裝置密鑰
471
錯誤代碼與依品質決定的速率限制有關。如需詳細資訊,請參閱「依品質決定的速率限制」文件。
以下是訊息範本傳送端驗證錯誤及其可能成因:
template
。如需詳細資訊,請參閱媒體訊息範本文件。在 v2.29.x
之前,傳出的訊息佇列大小會隨時間增加是因故障之故。升級至 v2.29.3
即可解決此問題。
核心應用程式將檢查核心應用程式容器內的 /usr/local/waent/data
和 /usr/local/waent/log
目錄,確保至少有 10 MB 的儲存空間,否則將會顯示此嚴重錯誤。
請檢查您的記錄和資料目錄,確保您有足夠的空間。
目前無法這麼做。如果您無法透過 WhatsApp 處理用戶的入站回應,建議您傳送自動回覆訊息,將其重新導向至適當的支援管道。
您應該註冊第二個手機號碼,並啟動第二個 CloudFormation 堆疊或 Docker 實例進行測試。如果您有兩個 WhatsApp Business API 用戶端使用同一手機號碼,伺服器會因為加密金鑰發生衝突而將您登出。建議您在正式作業用戶端執行任何移轉之前,先使用第二個環境來測試非正式作業實例。
顧客變更 WhatsApp 手機號碼時,您的企業不會收到通知。當您使用 contacts
節點時,該手機號碼的狀態將為 invalid
。
如果顧客手機號碼停用後仍使用 WhatsApp,則可以繼續存取 WhatsApp,直到手機號碼經重新指派或重新註冊為止。
WhatsApp 會對所提供的號碼進行強式驗證,確認該號碼是否屬於特定手機。用戶擁有 WhatsApp 帳號即證明他們已確認該號碼,且後續沒有人使用該號碼在 WhatsApp 上註冊,但是無法保證 SIM 卡的所在地點。
另一方面,如果用戶的手機遺失或被竊,可以停用其 WhatsApp 帳號。若要瞭解用戶如何停用其帳號的詳細資訊,請參閱手機遺失或被竊常見問題。
不行,無法使用 WhatsApp Business API 偵測相同手機號碼的裝置。
來自用戶的訊息酬載可以是文字或媒體檔案。
若是文字,將視為沒有任何已知危險。
若是媒體檔案:
auto_download
欄位設為空陣列。 WhatsApp Business 內部部署 API 用戶端需要儲存密鑰的資料庫,以解密商家與顧客之間傳送的訊息。使用傳送者和接收者密鑰加密 WhatsApp 上的所有訊息。將顧客密鑰儲存在其行動裝置上,並將商家密鑰儲存在商家的資料庫中。深入瞭解 WhatsApp 的安全性。
WhatsApp Business 雲端 API 是 Meta 託管商家資料庫的替代項目。雲端 API 允許您實作 WhatsApp Business API,無須自有伺服器的託管成本。瞭解詳情。