この記事では、Google Apps Script (GAS) を利用して、LINE BOTで「ボタンテンプレートメッセージ」を送信する方法を解説します。
ボタンテンプレートは、画像、タイトル、説明文、そして複数のアクションボタンを一つのまとまりとして送信できるメッセージ形式です。ユーザーに対して視覚的に分かりやすく、次のアクションを促したい場合に非常に効果的です。
公式ドキュメントはこちらを参照してください。


事前準備
実装を始める前に、以下の準備が必要です。
- チャンネルアクセストークンの取得: LINE Developersコンソールからアクセストークンを取得します。
LINE BOT開発に不可欠なMessaging APIのチャンネルアクセストークンを取得する手順を、実際の画面キャリプチャを交えて詳しく解説します。LINE Developersへの登録からプロバイダー、チャンネル作成、トークン発行までを網羅。
- ユーザーIDの取得: メッセージの送信先となるご自身のLINEユーザーIDを取得します。
Google Apps Script(GAS)を使って、LINE BOTと友だちになっているユーザーのIDを取得する方法を解説します。Webhook経由で送信されるイベント情報から、特定のユーザーを識別するための`userId`を抜き出すサンプルコードを紹介します。
実装コード
以下の関数は、ボタンテンプレートメッセージを送信します。
1. 定数の設定
まず、スクリプトで利用する定数を定義します。取得したチャンネルアクセストークンとユーザーIDを設定してください。
const TOKEN = 'LINEのトークンを指定(取得方法:https://arukayies.com/gas/line_bot/gettoken)';
const DEBUGID = 'LINEのユーザIDを指定(取得方法:https://arukayies.com/gas/line_bot/get-userid)';
2. ボタンテンプレートメッセージを送信するコード
以下の関数を実行することで、指定したユーザーにボタンテンプレートメッセージが送信されます。
//LINEBOTでボタンテンプレートを設定したメッセージを送るサンプル
function pushmessage_buttons_template() {
//ボタンテンプレートを設定したメッセージを送る
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/push', {
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + TOKEN,
},
'method': 'POST',
'payload': JSON.stringify({
'to': DEBUGID,
'messages': [
{
'type': 'template',
'altText': 'ボタンテンプレートメッセージ',
'template': {
'type': 'buttons',
'thumbnailImageUrl': 'https://placehold.jp/640x480.jpg?text=サンプル', // 画像のURL
'imageAspectRatio': 'rectangle', // 画像のアスペクト比
'imageSize': 'cover', // 画像の表示形式
'imageBackgroundColor': '#FFFFFF', // 画像の背景色
'title': 'メニュー',
'text': '以下より選択してください。',
'defaultAction': { // 画像やタイトル・テキスト部分をタップした際のアクション
'type': 'uri',
'label': 'View detail',
'uri': 'https://arukayies.com/'
},
'actions': [ // ボタンのアクション
{
'type': 'uri',
'label': 'TOPを開く',
'uri': 'https://arukayies.com/'
},
{
'type': 'uri',
'label': '記事を開く',
'uri': 'https://arukayies.com/gas/line_bot/pushmessage-buttons-template'
}
]
}
}
],
'notificationDisabled': false // trueだとユーザーに通知されない
}),
});
}
このコードでは、templateのtypeにbuttonsを指定し、thumbnailImageUrlやtitle、text、そして複数のactionsを設定しています。
動作確認
GASのスクリプトエディタでpushmessage_buttons_template関数を実行します。

実行すると、LINEにボタンテンプレートメッセージが送信されます。
「TOPを開く」ボタンをタップすると、指定したURL(この例ではブログのトップページ)が開きます。
その他のアクションについては、以下の記事でまとめて解説しています。
LINE BOT開発で必須のアクションオブジェクト7種類(ポストバック、メッセージ、URI、日時選択、カメラ、カメラロール、位置情報)の機能と使い方をGoogle Apps Script (GAS) のサンプルを交えて徹底解説。それぞれの違いや最適な使い分けがわかります。
まとめ
今回は、GASを使ってLINE BOTでボタンテンプレートメッセージを送信する方法を解説しました。ユーザーに複数の選択肢を分かりやすく提示できるため、BOTの利便性を大きく向上させることができます。

