9
3

原材料の情報をLINE Botで送信したい。

Last updated at Posted at 2024-02-24

倉庫整理を目的とした原材料の場所を知らせてくれるアプリを作りたい。

 こんにちは、飲食店で働くおじさんです。
デジタル技術を身に付けたく、勉強しております。
今回、一緒に働く従業員さんからの要望で、倉庫整理をしやすくする指標を作ってほしいとのこと。これはデジタルの力を使って作ってみる!
いざ、製作開始!

22768950.jpg

今回、使用したツール

Google Apps Script

ChatGPT

Google スプレッドシート

今回はChatGPTにコードを書いてもって作成することにしました。

 今回の実装イメージは、LINEBotです。LINEに調べたい原材料名を入力すると
原材料の情報が返信されるようにすること。
まず、スプレッドシートに情報を入力しました。
スクリーンショット (75).png

呼び出したい情報,

原材料名を入力すると

呼び出したい情報は!

原材料の保管場所
原材料のロッド数
発注頻度
使用期限
開封した後の使用期限
情報がLINEに届くようにします。 これを見て、従業員が原材料の管理をしていきます。

次にChatGPTにコードを書いてもらう。

約1週間、ChatGPTと会話を続けいろいろ教えてもらい、

スクリーンショット (76).png
スクリーンショット (94).png

スクリーンショット (77).png

qiita.rb
// LINE Messaging APIのアクセストークン
var ACCESS_TOKEN = 'アクセストークン';

// LINE Messaging APIの送信先URL
var LINE_ENDPOINT = '送信先URL';

// スプレッドシートURL
var SPREADSHEET_URL = 'スプレッドシートURL';

// LINEにメッセージを送信する関数
function sendLineMessage(message, userId) {
  var headers = {
    'Authorization': 'Bearer アクセストークン',
    'Content-Type': 'application/json',
  };
  var payload = JSON.stringify({
    to:'送信先ID', // 送信先のユーザーIDを指定
    messages: [
      {
        type: 'text',
        text: `お探しの物は何でしょうか?`
      },
    ],
  });
  var options = {
    'method': 'post',
    'headers': headers,
    'payload': payload,
  };
  UrlFetchApp.fetch(LINE_ENDPOINT, options);
}

// スプレッドシートから原材料情報を検索する関数
function searchMaterialInfo(materialName) {
  var sheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL).getActiveSheet();
  var lastRow = sheet.getLastRow();
  var range = sheet.getRange("A2:H" + lastRow); // A列からH列までの範囲を指定
  var values = range.getValues();
  
  for (var i = 0; i < values.length; i++) {
    if (values[i][0] == materialName) {
      // H列までの情報を文字列として結合
      var materialInfo = "原材料名:" + values[i][0] + "\n保管場所:" + values[i][1] + "\n発注単位:" + values[i][2] + "\n入り数:" + values[i][3] + "\n使用期限:" + values[i][4] + "\n開封【解凍)後使用期限:" + values[i][5] + "\n使用頻度:" + values[i][6] + "\n数量限定原材料:" + values[i][7];
      return materialInfo;
    }
  }
  
  return "該当する原材料が見つかりませんでした。";
}

// LINE Botのメイン関数
function doPost(e) {
  var events = JSON.parse(e.postData.contents).events;
  for (var i = 0; i < events.length; i++) {
    var event = events[i];
    if (event.type == 'message' && event.message.type == 'text') {
      var message = event.message.text;
      var userId = event.source.userId;
      var replyMessage = searchMaterialInfo(message);
      sendLineMessage(replyMessage, userId);
    }
  }
}

上記のコードに必要な情報を入力
LINEアクセストークン
LINE送信先ID
スプレッドシートのURL
返答用の回答
をコードに入力しました。

実行のエラーも無くなり いざ、デプロイ!
スクリーンショット (80)_LI.jpg

意気揚々と、アプリを開くと(動画です)

結果、動作はしなかったです。
このあと、再度、挑戦します。成功したら再投稿します。
是非、楽しみにしてください。

9
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3