LoginSignup
9
2

More than 1 year has passed since last update.

今朝の話

おうちの断捨離を進めているところなんですが、子供達の写真の管理の話になった。
アルバムを用意して物理で貯める、という案を夫が出してきたのでイヤイヤイヤ!ということでこの機会に電子化する方向に持っていくことにした。

構想

基本はどこかのアルバムサービスに依存するよりは、Googleドライブに入れたい
スキャンして保存、の流れが理想
スマホでスキャンもOK
うん、Googleドライブに普通にアップロードすれば良いよね。うちのスキャナーはフォルダ保存に対応しているし。
・・・・・
そういや夫はスキャナーからフォルダ保存覚えられないんだった!!まじかよ、、、

ということで、LINEに送ったものを自動で保存していくことにしました。

仕組み

ほぼほぼみんなやり尽くされているので簡単です。

  • LINE Bot(MessageingAPI)でアクセスキーを取得
  • GASのdoPostでWebHookを作る

前回やったときはwebhookはherokuで作ってたけど、最近はGASの方が慣れてきたので多分今やるならこちらの方が早い。

参考にしたのはここ

変更箇所

  • Momentライブラリは使わずにUtilitiesを使用
var date = new Date(); //現在日時を取得
var formattedDate = Utilities.formatDate(date, "JST", "yyyyMMdd-HHmmss");
  • ルートフォルダ以下に年(YYYY)ごとのフォルダを作成し、貯めるべきフォルダIDを取得するメソッドを新設。
// 年ごとのフォルダIDを作成する
function getFolderPathOfYear(year){
  folder = DriveApp.getFolderById(ROOT_FOLDER_ID);
  childFolders = folder.getFolders();

  while(childFolders.hasNext()){
    childFolder = childFolders.next()
    if(year == childFolder.getName()){
      Logger.log(childFolder.getId())
      return childFolder.getId()
    }
  }  
  //見つからない場合作る
  newfolder = folder.createFolder(year)
  Logger.log(newfolder.getId())
  return newfolder.getId()

}
  • 夫とのLINEのやりとりにLINE Botを招待したいため、画像じゃない場合にアラートは不要なので削除
  • doPostだとLogger.logが出てくれないのでスプレッドシートにlogを吐き出す。(毎度やるもの)これじゃなくてログを出す方法があるなら教えて欲しい
function logSpreadsheet(memo){
    // 現在開いているスプレッドシートを取得
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  // 現在開いているシートを取得
  var sheet = spreadsheet.getSheetByName("log")


  let lastRow = sheet.getLastRow();
  // 指定したセルの値を変更する
  Logger.log(lastRow+1, memo)
  sheet.getRange(lastRow+1,1).setValue(memo);
}

全量 & 導入方法

多分以下の流れでそのまま使えるはず、、、、

  • スプレッドシートに「log」を用意
  • スプレッドシートから作成したAppScriptに全量コピペ
  • LINE Developersからアクセストークンを取得
  • 取得したトークンをAppScriptに貼り付け
  • ドライブにルート用のフォルダを作成
  • ルートフォルダのIDをAppScriptに貼り付け
  • GAS公開
  • URLをLINE Developersのwebhookに貼り付け

補足

過去の紙媒体のものは普通にスキャナーから保存するつもり。
(というか、私はLINE経由せずにスキャナーから保存するような気がする)
携帯で撮った写真をLINEで送り合ったのが勝手にたまるのを期待しています。
上手くいけばいいな。

9
2
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
2