WhatsAppAPIを使用してGoogleスプレッドシートからWhatsAppメッセージを送信する方法
公開: 2022-06-16このチュートリアルでは、新しいWhatsAppAPIをGoogleApps Scriptで使用して、GoogleスプレッドシートからWhatsAppメッセージを送信する方法について説明します。 同じアプローチは、新しいフォームの送信が受信されたときにGoogleフォームからWhatsAppメッセージを送信する場合にも機能します。
ステップ1:WhatsAppアプリを作成する
developers.facebook.comにアクセスし、[ Create App
]ボタンをクリックして、WhatsAppメッセージの送信に使用する新しいアプリを作成します。
アプリの種類として[ Business
]を選択します。
アプリにわかりやすい名前を付け(アプリ名にWhatsApp
やFacebook
などの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スプレッドシートの実際の値に置き換えられます。 これは、MailMergeおよびDocumentStudio内で使用した可能性のあるマーカーと非常に似ていますが、これらが位置マーカーであり、名前付きマーカーではないというわずかな違いがあります。
これがメッセージテンプレートです。変数{{1}}と{{2}}はそれぞれ顧客名とアイテム名用です。
WhatsAppが新しいメッセージテンプレートを承認するまでに最大1分かかる場合があります。
ステップ4:WhatsAppメッセージを送信する
Facebook / WhatsApp側のすべての構成が完了したので、これらのパーソナライズされたWhatsAppメッセージを実際に自動化された方法で送信するGoogleスプレッドシートで作業してみましょう。
ここをクリックして、WhatsAppシートを自分のGoogleアカウントにコピーしてください。
次に、Googleスプレッドシートの[電話番号]列に電話番号(国コード付き)を追加します。 前の手順でテストWhatsAppアカウントで確認した番号のみを追加する必要があります。
次に、[拡張機能]メニューに移動し、[AppsScript]を選択して基になるスクリプトを開きます。 WHATSAPP_ACCESS_TOKEN
とWHATSAPP_TEMPLATE_NAME
を、前の手順でコピーした値に置き換えます。
Apps Scriptエディタ内の[ Run
]ボタンをクリックすると、リストされた電話番号にWhatsAppメッセージが即座に送信されます。
以下にあるのは、WhatsApp APIによって送信される実際のWhatsAppメッセージであり、テンプレート内の変数マーカーをGoogleスプレッドシートの実際の値に置き換えています。
技術的な詳細
WhatsAppAPIがGoogleAppsScriptとどのように連携するか
Google AppsScriptは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サービスを使用してWhatsAppCloudAPIを呼び出して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スプレッドシートを使用したワークフローの自動化