如何使用 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 表格自动化工作流程