【完結編】スマホが秘書に。新着口コミをLINEで受け取る「即時通知」の実装
前回の記事で、AIが24時間口コミをパトロールする「エンジン」は完成しました。 しかし、スプレッドシートをいちいち見に行くのは面倒ですよね。
そこで今回は、「新しい口コミが来たら、AIが作った返信案を即座にあなたのLINEへ飛ばす」設定を行います。これぞ、真のオートパイロットです。
ステップ1:LINE Developersで「チャネル」を作成する
LINE Developers にログイン。
「プロバイダー」を作成し、Messaging API のチャネルを新規作成します。
Messaging API設定 タブから「チャネルアクセストークン(長期)」を発行し、コピーします。
GASの「スクリプトプロパティ」に LINE_ACCESS_TOKEN として保存します。
自分の ユーザーID(チャネル基本設定タブの下部にあります)も MY_LINE_USER_ID として保存します。※LINEアカウントが未連携だと表示されません、禁じ手で表示させるなら
ステップ2:Messaging API専用の送信関数
LINE Notifyとは送り方が異なります。以下のコードをGASの末尾に貼り付けてください。
JavaScript
/**
* LINE Messaging APIを使用してプッシュ通知を送る
*/
function sendLineMessage(text) {
const token = scriptProperties.getProperty('LINE_ACCESS_TOKEN');
const userId = scriptProperties.getProperty('MY_LINE_USER_ID');
if (!token || !userId) {
console.error("LINEのトークンまたはユーザーIDが設定されていません。");
return;
}
const url = "https://api.line.me/v2/bot/message/push";
const payload = {
"to": userId,
"messages": [{ "type": "text", "text": text }]
};
const options = {
"method": "post",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer " + token
},
"payload": JSON.stringify(payload),
"muteHttpExceptions": true
};
UrlFetchApp.fetch(url, options);
}
ステップ3:自動検知エンジンとの合体
前回の checkNewReviews 関数内の通知部分を、新しい関数に差し替えます。
JavaScript「どこを書き換えるか」が迷いようがない、Messaging API対応版の checkNewReviews 完全書き換え用コードを作成しました。
前回のコードを一度すべて消して、これを貼り付ければ「自動取得」から「LINE Messaging APIでの通知」までが一本に繋がります。
【Messaging API対応】checkNewReviews 完全版コード
JavaScript
/**
* MEOオートパイロット:新着口コミ自動検知・LINE通知エンジン
* 製作:あい|現役店舗経営者 × AI・GASエンジニア
*/
function checkNewReviews() {
const service = getService();
if (!service.hasAccess()) {
console.error("認証が必要です。ログのURLから認証を完了してください。");
console.log(service.getAuthorizationUrl());
return;
}
// 1. GBP APIから最新の口コミを取得
const ACCOUNT_ID = scriptProperties.getProperty('GBP_ACCOUNT_ID');
const LOCATION_ID = scriptProperties.getProperty('GBP_LOCATION_ID');
const url = `https://mybusiness.googleapis.com/v4/accounts/${ACCOUNT_ID}/locations/${LOCATION_ID}/reviews`;
const response = UrlFetchApp.fetch(url, {
headers: { Authorization: 'Bearer ' + service.getAccessToken() }
});
const result = JSON.parse(response.getContentText());
const reviews = result.reviews || [];
if (reviews.length === 0) return;
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('口コミ管理');
const lastRow = sheet.getLastRow();
const existingReviewIds = lastRow > 1 ? sheet.getRange(2, 5, lastRow - 1, 1).getValues().flat() : [];
// 2. 未登録の口コミをループ処理
reviews.forEach(review => {
if (!existingReviewIds.includes(review.reviewId)) {
const row = [
new Date(review.createTime), // A: 日付
review.starRating === "FIVE" ? 5 : (review.starRating === "FOUR" ? 4 : 3), // B: 星
review.comment || "(コメントなし)", // C: 内容
"", // D: AI返信案
review.reviewId // E: 管理用ID
];
sheet.appendRow(row);
const newRow = sheet.getLastRow();
// --- ここからがAI生成とMessaging API通知の連動 ---
// ① AI返信を生成してD列に書き込む
processRow(sheet, newRow);
// ② 生成された返信案を取得
const aiReply = sheet.getRange(newRow, 4).getValue();
// ③ LINE送信用メッセージを組み立て
const message = `【新着口コミ検知!】\n評価:★${row[1]}\n内容:${row[2]}\n\n🤖AI返信案:\n${aiReply}\n\n※この案で良ければスプレッドシートから投稿してください。`;
// ④ Messaging APIで送信(末尾に定義した関数を呼び出し)
sendLineMessage(message);
// ----------------------------------------------
}
});
}ステップ4:なぜMessaging APIなのか?(noteのキラーコンテンツ)
「LINE Notifyが終了し、多くの自動化ツールが動かなくなりました。しかし、これはチャンスです。
🛠 どこが・どう繋がっているのか

① Googleマップ ↔ GAS(情報のキャッチ)
繋ぎ役: GBP API と checkNewReviews 関数
仕組み: GASの「トリガー(時計設定)」が1時間に1回、Googleのサーバーに「新しい口コミ、来てない?」と聞きに行きます。これが自動パトロールの正体です。
② GAS ↔ Gemini API(知能の連携)
繋ぎ役: fetchGeminiReply 関数
仕組み: 口コミを見つけると、GASが「この内容に、愛される店主として返信を考えて!」とGeminiに指示を飛ばします。AIが瞬時に「神返信」を生成してGASに返します。
③ GAS ↔ スプレッドシート(記録の自動化)
繋ぎ役: sheet.appendRow
仕組み: AIが考えた返信案と口コミの内容を、スプレッドシートの「口コミ管理」シートに自動で書き込みます。これで台帳が勝手に埋まります。
④ GAS ↔ LINE Messaging API(通知の連携)
繋ぎ役: sendLineMessage 関数
仕組み: シートに書き込んだ瞬間に、GASがLINEのサーバーへ「店主のスマホにこの内容をプッシュ通知して!」とリクエストを送ります。これが「スマホが秘書になる」瞬間です。
💡 「納得ポイント」
「バラバラだったGoogleマップ、AI、LINE。これらをGAS(Google Apps Script)という『接着剤』で一つに繋ぎ合わせる。
💡 手に入る「未来」
「かつて、閉店後に一人でスマホを見つめ、口コミの星の数に一喜一憂していた時間はもうありません。
いいなと思ったら応援しよう!
もしこの記事が「コーヒー一杯分以上の価値」があると感じていただけたら、活動を応援いただけると大変励みになります。
頂いたサポートは、さらに高度な「店舗×AI」の自動化ツール開発や、海外の有料級情報の仕入れに大切に活用させていただきます。応援、よろしくお願いいたします!