如何使用 WhatsApp API 從 Google 表格發送 WhatsApp 消息

已發表: 2022-06-16

WhatsApp with Google Sheets

本教程介紹瞭如何使用帶有 Google Apps 腳本的新 WhatsApp API 從 Google 表格發送 WhatsApp 消息。 當收到新的表單提交時,同樣的方法也適用於從 Google 表單發送 WhatsApp 消息。

第 1 步:創建一個 WhatsApp 應用程序

轉到developers.facebook.com 並單擊“ Create App ”按鈕以創建一個新應用程序,我們將使用它來發送WhatsApp 消息。

Facebook WhatsApp App

選擇Business作為應用類型。

為您的應用取一個描述性名稱(不要在應用名稱中使用任何 Facebook 商標,例如WhatsAppFacebook ),然後單擊“ Create App ”按鈕創建應用。

WhatsApp App Name

創建應用程序後,單擊下一個屏幕上的WhatsApp按鈕,將 WhatsApp 發送功能添加到您的應用程序。

在下一個屏幕上,您需要將 WhatsApp 應用程序鏈接到您的 Facebook 企業帳戶。 如果您還沒有,您還可以選擇創建一個新的企業帳戶。

Add WhatsApp App

第 2 步:添加收件人的電話號碼

Facebook 將為您提供一個測試 WhatsApp 電話號碼,該號碼將作為您應用的默認發送地址。 對於收件人,您可以選擇在開發階段最多添加 5 個電話號碼,而無需支付任何費用。

您的 WhatsApp 應用程序將為您提供一個有效期為 23 小時的臨時訪問令牌。 記下這個令牌,因為我們將在後面的步驟中需要它。

WhatsApp Phone Number

接下來,單擊Recipient Phone Number下拉菜單,將最多 5 個不同的 WhatsApp 電話號碼添加到您的應用程序中。 您將在添加的號碼上收到一個驗證碼,並且您將能夠僅向已使用該代碼驗證的號碼發送 WhatsApp 消息。

Verify Phone Number

第 3 步:創建 WhatsApp 消息模板

切換到模板管理器並創建一個新的 WhatsApp 消息模板。

對於此示例,我們將選擇類別作為Account Update ,並為您的消息模板指定一個唯一名稱。 對於語言,我們將選擇代碼語言為en的英語。 如果您使用其他語言,請記下發送消息所需的代碼語言。

WhatsApp Message Template

編寫個性化信息

我們在消息中使用可變參數,這些參數將替換為 Google 表格中的實際值。 它與您可能在 Mail Merge 和 Document Studio 中使用的標記非常相似,稍有不同的是,這些標記是位置標記而不是命名標記。

這是我們的消息模板,其中變量 {{1}} 和 {{2}} 分別代表客戶名稱和項目名稱。

WhatsApp Message Template

WhatsApp 最多可能需要一分鐘來批准您的新消息模板。

第 4 步:發送 WhatsApp 消息

現在我們在 Facebook / WhatsApp 端的所有配置都已完成,讓我們在 Google Sheet 上工作,它將以自動方式實際發送這些個性化的 WhatsApp 消息。

單擊此處將 WhatsApp 表格複製到您自己的 Google 帳戶中。

Google sheets WhatsApp

接下來,在 Google 表格的電話號碼列中添加電話號碼(帶有國家代碼)。 您應該只添加您在上一步中使用您的測試 WhatsApp 帳戶驗證過的號碼。

然後轉到 Extension 菜單並選擇 Apps Script 以打開底層腳本。 將WHATSAPP_ACCESS_TOKENWHATSAPP_TEMPLATE_NAME替換為您在前面的步驟中復制的值。

單擊 Apps 腳本編輯器中的Run按鈕,它應該會立即將 WhatsApp 消息發送到您列出的電話號碼。

下面是 WhatsApp API 發送的實際 WhatsApp 消息,將模板中的變量標記替換為 Google 表格中的實際值。

WhatsApp Message Text

技術細節

WhatsApp API 如何與 Google Apps 腳本配合使用

Google Apps 腳本連接到 Google 表格並檢索將通過 WhatsApp 發送消息的客戶詳細信息,包括電話號碼。

 // Get data from Google Sheets // for sending messages through WhatsApp const getSheetData_ = ( ) => { const sheet = SpreadsheetApp . getActiveSheet ( ) ; const [ header , ... rows ] = sheet . getDataRange ( ) . getDisplayValues ( ) ; const data = [ ] ; rows . forEach ( ( row ) => { const recipient = { } ; header . forEach ( ( title , column ) => { recipient [ title ] = row [ column ] ; } ) ; data . push ( recipient ) ; } ) ; return data ; } ;

接下來,腳本遍歷工作表的每一行,並通過使用 UrlFetch 服務調用 WhatsApp Cloud API 來發送 WhatsApp 消息。

 // Send Message with WhatsApp Cloud API const sendMessage_ = ( e ) => { const apiUrl = 'https://graph.facebook.com/v13.0/114746974570888/messages' ; const request = UrlFetchApp . fetch ( apiUrl , { muteHttpExceptions : true , method : 'POST' , headers : { Authorization : ` Bearer ${ WHATSAPP_ACCESS_TOKEN } ` , 'Content-Type' : 'application/json' , } , payload : JSON . stringify ( { type : 'template' , messaging_product : 'whatsapp' , to : e . recipient_number , template : { name : WHATSAPP_TEMPLATE_NAME , language : { code : LANGUAGE_CODE } , components : [ { type : 'body' , parameters : [ { type : 'text' , text : e . customer_name } , { type : 'text' , text : e . item_name } , { type : 'text' , text : e . delivery_date } , ] , } , ] , } , } ) , } ) ; const { error } = JSON . parse ( request ) ; if ( error ) { Logger . log ( ` ${ error } ` ) ; } else { Logger . log ( ` Message sent to ${ recipient_number } ` ) ; } } ; const main = ( ) => { getSheetData_ ( ) . forEach ( ( row ) => { const status = sendMessage_ ( { recipient_number : row [ 'Phone Number' ] . replace ( / [^\d] / g , '' ) , customer_name : row [ 'Customer Name' ] , item_name : row [ 'Item Name' ] , delivery_date : row [ 'Delivery Date' ] , } ) ; } ) ; } ;

另請參閱:使用 Google 表格自動化工作流程