LINE LIFF SDK × Google Apps Script で構築するサーバーレス予約管理の技術ガイド。
シンプルで運用しやすいアーキテクチャ
LINE アプリ内でネイティブに近いUI体験を提供。LIFF SDK でユーザー認証・プロフィール取得を実現。
GASの doGet/doPost でREST風APIを構築。データはGoogleスプレッドシートに格納。サーバー管理不要。
2チャネル通知で確実にリーチ。LINEプッシュ通知 + メール通知をGASトリガーで自動実行。
4ステップで予約管理システムを構築
LINE Developers Console でプロバイダーを作成し、LIFF アプリを追加。Endpoint URL を設定して LIFF ID を取得します。
await liff.init({ liffId: 'YOUR_LIFF_ID' });
if (!liff.isLoggedIn()) {
liff.login();
return;
}
const profile = await liff.getProfile();
doGet / doPost でAPI エンドポイントを作成。パラメータ action でルーティングします。
function doGet(e) {
const action = e.parameter.action;
if (action === 'list') {
return jsonResponse(getSchedules());
}
return HtmlService.createHtmlOutputFromFile('index');
}
function jsonResponse(data) {
return ContentService
.createTextOutput(JSON.stringify(data))
.setMimeType(ContentService.MimeType.JSON);
}
LINE Messaging API でプッシュ通知、GAS MailApp でメール通知を送信。GASトリガーで自動実行。
// LINE プッシュ通知
function sendLineNotification(userId, message) {
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/push', {
method: 'post',
headers: {
'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN,
'Content-Type': 'application/json'
},
payload: JSON.stringify({
to: userId,
messages: [{ type: 'text', text: message }]
})
});
}
// メール通知
MailApp.sendEmail({
to: email,
subject: '【LiffCal】リマインド',
body: `${date} ${time} に予定があります。`
});
clasp で GAS にプッシュし、ウェブアプリとしてデプロイ。LIFF の Endpoint URL を更新して完了。
# clasp でプッシュ
clasp push --force
# ウェブアプリとしてデプロイ
clasp deploy --description "v0.1.0"
LIFF x GAS 開発で知っておくべきこと