本教程介绍了如何使用带有 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 表格自动化工作流程
原文: https://www.labnol.org/whatsapp-api-google-sheets-220520