LoginSignup
2
3

More than 5 years have passed since last update.

【丸パクリできる】GASで日報テンプレをSlackに自動投稿するコード

Last updated at Posted at 2018-09-07

簡単な自己紹介

エンジニア歴 6時間32分

きっかけ

一日の振り返りシートを毎日記入したいと思った。

目的

Slackにスプレッドシートを投稿してその日の日報テンプレを準備する


ついでに目標も毎日投稿しちゃいたい!
グーグルドキュメントとかも使えます!!


/** 
 * 振り返りシートをSlackに自動で毎日投稿。 
 */ 

/*===========================================================================
     TODO: ここだけ編集する 
===========================================================================*/

// 取得方法はこちら。 => 「https://qiita.com/ik-fib/items/b4a502d173a22b3947a0」 
var postUrl = 'https://hooks.slack.com/services/1234567890; 
// Slackの投稿者の名前 
var username = '振り返りシート'; 
// 「https://www.webfx.com/tools/emoji-cheat-sheet/」
var icon = ':stuck_out_tongue_winking_eye:'; 
// 追加するフォルダ
var targetFolderId = '1ReNsEj-vk2ydOPhHNdz34aXRp9W3n-_j' 
// テンプレとして使うファイル
var fileId = '1r5mObHmDgE8GatxVpFEjAaNJFh-V9qtQH0RZtHu3DxM'

var taskMsg = "0時00分が期限です。23時までには書いておきましょう\n"; 
var line = "\n=============================\n"; 
/*========================================================== 
     目標 
==========================================================*/
var s1 = "■目標\n\n■2018年11月(cc歳)\n";
var s2 = " →AAA\n";
var s3 = "■2019年3月(cc歳)\n";
var s4 = " →BBB\n";
var s5 = "■2019年8月(cc歳)\n";
var s6 = " →CCC\n";
var s7 = "■2020年8月(cc歳)\n";
var s8 = " →DDD\n";
var s9 = "■2021年8月(cc)歳\n";
var s10 = " →EEE\n";
var schedule = line + s1 + s2 + s3 + s4 + s5 + s6 + s7 + s8 + s9 + s10;
/*==========================================================
     END. 目標 
==========================================================*/

/*===========================================================================
     TODO: END. ここだけ編集する 
=============================================================================*/

function copyTempleteFile() { 
  var files = DriveApp.getFolderById(targetFolderId).getFiles(); 
  if(files.hasNext()){ 
    var file = files.next(); 
    fileId = file.getId() 
  } 
  var date = new Date(); 
  var formattedDate = Utilities.formatDate(date, "JST", "yyyyMMdd"); 
  var file = DriveApp.getFileById(fileId); 
  var newFile = file.makeCopy(formattedDate); 
  return newFile; 
} 

function postMessage(message) { 
  var jsonData = 
      { 
        "username" : username, 
        "icon_emoji" : icon, 
        "text" : message 
      }; 
  var payload = JSON.stringify(jsonData); 
  var options = 
      { 
        "method" : "post", 
        "contentType" : "application/json", 
        "payload" : payload 
      }; 
  UrlFetchApp.fetch(postUrl, options); 
} 

function createDocBot() {
  var objDoc = copyTempleteFile();
  var docFile = DriveApp.getFileById(objDoc.getId());
  var targetFolder = DriveApp.getFolderById(targetFolderId);
  targetFolder.addFile(docFile);
  DriveApp.getRootFolder().removeFile(docFile);
  var url = docFile.getUrl();
  // slackへのメッセージ内容
  var message  =  taskMsg + url+  schedule;
  postMessage(message) 
}

結果としてはこんな感じでとうこうされます。
image.png

短いコードですが今回コードを書いてみてエンジニアの方の凄さがわかりました。
僕みたいなプログラミング初心者でも使えるように簡単にまとめみたので使ってみてください。

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