目次
このツールを作成しようとした背景
ズバリ曖昧回避です。私は職業柄食に関わるので、アレルギーに対しての知識を持っていないとお客さまの命にかかわるからです。私の実体験のもとお客さまからこの商品は○○入っていますかと聞かれ、不安を覚えました。幸いにもその商品のラベルに書いてはありますが、確実な情報が欲しいときに品番を入力するだけで、その品番のアレルゲンが瞬時にわかるプロトタイプがあればいいなと思い、作成しました。これからどのように作成したのか説明します完成品
使用ツール
LINE Bot
Googleスプレッドシート
ChatGPT
Google Apps Script
作成手順
①LINE Botを作成(前回の記事参照)
②Googleスプレッドシートに品番とアレルゲンを入力
今回はプロトタイプのため仮で1から50まで入力し、アレルゲンも入力しました。
③Google Apps Scriptを拡張機能から開きます
開いたら最初に記入してある項目すべて削除してまっさらな状態にしてください
④ChatGPTに聞く
私はプログラミング初心者なのでChatGPTにGASを書いてもらいました
この時のポイント
・最終目的はどうしたいのか(この場合は品番でアレルゲンが知りたい)
・なんのツールを使って作成したいのか(今回はLINE Bot)
これらを明確にすると本題から逸れることなく正解にたどり着けます
わたしはこのように聞きました
この時に画像を貼り付けて聞くとより明確になります!
⑤教えてもらったGASコードを③でまっさらにしたシートに張り付ける。コピークリックする
しかし、これではLINE Botと繋がっていないため、LINE Botで繋げたいと私は聞き新たなGASを作成してもらいました
よく見ると一番上にチャネルアクセストークン、
スプレッドシートIDの欄が増えました
この通りにLINE Developersから前回記事のようにアクセストークンを入手し、GASに貼り付けます。スプレッドシートIDも同様に貼り付けます
スプレッドシートはhttps://docs.google.com/spreadsheets/d/ と
/edit?... の間にある部分が IDです注意
ここで何回もエラーが起きたり、うまくいかなかったときにはそのGASを貼り付けてエラー内容ChatGPTに聞いてみたり、初心者にわかりやすく教えてと聞いたりしてみましょう。1から教えてくれます
シート名はSheet1 数字は半角です
⑥デプロイでURLを作成する
右上の青いデプロイボタンをクリックする
新しいデプロイ→種類を選択(Webアプリ)→実行するユーザー(自分)→アクセスできるユーザー(全員)
このように設定するとURLが出てきます
下のURLをコピーする
⑦URLをLINE DevelopersのWebhook URLに張り付ける(Messaging APIの欄)
Webhookの利用をONにして検証→成功すればOK
これで登録が完了し完成です!!お疲れ様でした。
番外編
今回ChatGPTで作成して、作業効率が大幅短縮することが実感しました。 なので私は品番とアレルゲンを追加するGASをChatGPTに書いてもらいました完成品
最終的にこのようなGASになりました(IDやトークンは伏せてあります)
const LINE_ACCESS_TOKEN = 'ここにチャネルアクセストークン';
const SHEET_ID = 'ここにスプレッドシートID';
function doPost(e) {
const json = JSON.parse(e.postData.contents);
const replyToken = json.events[0].replyToken;
const userMessage = json.events[0].message.text;
let replyMessage = '';
// 品番とアレルゲン(複数可)がスペース区切りの場合、登録処理
if (userMessage.includes(' ')) {
const parts = userMessage.split(' ');
const partNumber = parts[0];
const allergen = parts.slice(1).join(','); // 小麦 卵 乳 → "小麦,卵,乳"
addAllergenRow(partNumber, allergen);
replyMessage = `✅ 品番「${partNumber}」とアレルゲン「${allergen}」を登録しました!`;
} else {
// 検索処理
const allergenInfo = searchAllergen(userMessage);
replyMessage = allergenInfo
? `🔎 品番「${userMessage}」のアレルゲンは:\n${allergenInfo.replace(/,/g, '\n')}` // カンマを改行に
: `⚠️ 品番「${userMessage}」は見つかりませんでした。`;
}
replyToUser(replyToken, replyMessage);
}
function addAllergenRow(partNumber, allergen) {
const sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName('Sheet1');
sheet.appendRow([partNumber, allergen]);
}
function searchAllergen(partNumber) {
const sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName('Sheet1');
const data = sheet.getDataRange().getValues();
for (let i = 1; i < data.length; i++) {
if (data[i][0].toString() === partNumber) {
return data[i][1];
}
}
return null;
}
function replyToUser(replyToken, message) {
const url = 'https://api.line.me/v2/bot/message/reply';
const payload = JSON.stringify({
replyToken: replyToken,
messages: [{
type: 'text',
text: message
}]
});
const options = {
method: 'post',
contentType: 'application/json',
headers: {
Authorization: `Bearer ${LINE_ACCESS_TOKEN}`
},
payload: payload
};
UrlFetchApp.fetch(url, options);
}
まとめ
今回初めてChatGPTを使ってプロトタイプを作成してみた感想は思ったより簡単にできるんだと思いました。なぜかというと私はプログラミング初心者でプログラミングなんて絶対にできないと思っていたからです。ChatGPTのおかげでハードルが下がりました。時間も大幅に削減できるので、追加してみたい機能やアプリを気軽に質問できるのはいいと思いました。 作っていくうちにここをこうしたい、もっとこうだといいなというアイデアがうかび、作るのが楽しかったです。 原材料は日々変わっていくので自動更新機能があるといいなと思いました。少し長くなってしまいましたが今回は以上となります。
最後までお付き合いいただきありがとうございました。