如何使用 WhatsApp API 從 Google 表格發送 WhatsApp 消息
已發表: 2022-06-16本教程介紹瞭如何使用帶有 Google Apps 腳本的新 WhatsApp API 從 Google 表格發送 WhatsApp 消息。 當收到新的表單提交時,同樣的方法也適用於從 Google 表單發送 WhatsApp 消息。
第 1 步:創建一個 WhatsApp 應用程序
轉到developers.facebook.com 並單擊“ Create App
”按鈕以創建一個新應用程序,我們將使用它來發送WhatsApp 消息。
選擇Business
作為應用類型。
為您的應用取一個描述性名稱(不要在應用名稱中使用任何 Facebook 商標,例如WhatsApp
或Facebook
),然後單擊“ Create App
”按鈕創建應用。
創建應用程序後,單擊下一個屏幕上的WhatsApp
按鈕,將 WhatsApp 發送功能添加到您的應用程序。
在下一個屏幕上,您需要將 WhatsApp 應用程序鏈接到您的 Facebook 企業帳戶。 如果您還沒有,您還可以選擇創建一個新的企業帳戶。
第 2 步:添加收件人的電話號碼
Facebook 將為您提供一個測試 WhatsApp 電話號碼,該號碼將作為您應用的默認發送地址。 對於收件人,您可以選擇在開發階段最多添加 5 個電話號碼,而無需支付任何費用。
您的 WhatsApp 應用程序將為您提供一個有效期為 23 小時的臨時訪問令牌。 記下這個令牌,因為我們將在後面的步驟中需要它。
接下來,單擊Recipient Phone Number
下拉菜單,將最多 5 個不同的 WhatsApp 電話號碼添加到您的應用程序中。 您將在添加的號碼上收到一個驗證碼,並且您將能夠僅向已使用該代碼驗證的號碼發送 WhatsApp 消息。
第 3 步:創建 WhatsApp 消息模板
切換到模板管理器並創建一個新的 WhatsApp 消息模板。
對於此示例,我們將選擇類別作為Account Update
,並為您的消息模板指定一個唯一名稱。 對於語言,我們將選擇代碼語言為en
的英語。 如果您使用其他語言,請記下發送消息所需的代碼語言。
編寫個性化信息
我們在消息中使用可變參數,這些參數將替換為 Google 表格中的實際值。 它與您可能在 Mail Merge 和 Document Studio 中使用的標記非常相似,稍有不同的是,這些標記是位置標記而不是命名標記。
這是我們的消息模板,其中變量 {{1}} 和 {{2}} 分別代表客戶名稱和項目名稱。
WhatsApp 最多可能需要一分鐘來批准您的新消息模板。
第 4 步:發送 WhatsApp 消息
現在我們在 Facebook / WhatsApp 端的所有配置都已完成,讓我們在 Google Sheet 上工作,它將以自動方式實際發送這些個性化的 WhatsApp 消息。
單擊此處將 WhatsApp 表格複製到您自己的 Google 帳戶中。
接下來,在 Google 表格的電話號碼列中添加電話號碼(帶有國家代碼)。 您應該只添加您在上一步中使用您的測試 WhatsApp 帳戶驗證過的號碼。
然後轉到 Extension 菜單並選擇 Apps Script 以打開底層腳本。 將WHATSAPP_ACCESS_TOKEN
和WHATSAPP_TEMPLATE_NAME
替換為您在前面的步驟中復制的值。
單擊 Apps 腳本編輯器中的Run
按鈕,它應該會立即將 WhatsApp 消息發送到您列出的電話號碼。
下面是 WhatsApp API 發送的實際 WhatsApp 消息,將模板中的變量標記替換為 Google 表格中的實際值。
技術細節
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 表格自動化工作流程