LINE公式アカウント × GAS 連携備忘録
1. LINE公式アカウントの初期設定
1-1. アカウント作成
- LINE公式アカウントにアクセス
- 「アカウントを作成」をクリック
- メールアドレス or LINEアカウントで登録
- アカウント名やプロフィールを入力
1-2. チャネル作成
- LINE Developers コンソールに移動
- 「プロバイダー」作成
- 「Messaging API」用のチャネルを作成
- 長期用チャネルアクセストークンを発行してメモしておく
1-3. 基本設定
- リッチメニューの設定(任意)
- BOTモードの確認
- Webhook URL を利用する場合は「利用する」に設定
2. GASの設定
2-1. プロジェクト作成
- Google Apps Script にアクセス
- 新規プロジェクトを作成
2-2. スプレッドシート準備
- 家計簿やメモを記録するスプレッドシートを作成
- シートIDを控えておく(URLの
/d/xxxxxxxxx/の部分) - 必要であれば列を準備(例: 日付、メモ、散歩時間など)
2-3. スクリプト準備
const LINE_CHANNEL_ACCESS_TOKEN = 'ここに長期用トークンを貼り付け';
const SPREADSHEET_ID = 'ここにスプレッドシートIDを貼り付け';
const SHEET_NAME = '家計簿'; // シート名
function doPost(e) {
const event = JSON.parse(e.postData.contents).events[0];
const replyToken = event.replyToken;
const userMessage = event.message.text;
// 日付を取得
const timestamp = new Date();
// スプレッドシートに記録
const sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME);
sheet.appendRow([timestamp, userMessage]);
// LINEに返信
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', {
'method': 'post',
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + LINE_CHANNEL_ACCESS_TOKEN
},
'payload': JSON.stringify({
'replyToken': replyToken,
'messages': [{
'type': 'text',
'text': '記録しました!\n' + userMessage
}]
})
});
}
2-4. デプロイ
- 「デプロイ」 → 「新しいデプロイ」
- 「ウェブアプリ」を選択
- 「実行するユーザー」 → 自分
- 「アプリにアクセスできるユーザー」 → 全員(匿名含む)
- 公開URLを控えて、LINE公式アカウントのWebhook URLに設定
⚠️ 注意: 公開範囲を「全員」にすると誰でもアクセスできるため、URLの漏洩には注意
3. LINE公式アカウントの連携設定
3-1. Webhook URL 設定
- LINE公式アカウント管理画面で「Messaging API」タブを開く
- Webhook URL に GAS のウェブアプリURLを設定
- 「Webhook送信」を有効にする
3-2. 動作確認
- LINE公式アカウントに友達登録
- テキストを送信してスプレッドシートに記録されるか確認
- LINEで「記録しました!」と返信されることを確認
備考
- 今回は 長期用トークン 前提なので、短期トークンの更新は不要
- 複雑な処理を入れる場合は、try-catchでエラー処理を追加
- スプレッドシートで管理することで、後から家計簿やメモを集計・分析可能
- 複数LINE公式アカウントを使う場合は、チャネルごとにGASプロジェクトを分けると管理しやすい