Slide 1

Slide 1 text

("4Ͱ4MBDL#PU ߥ໦୎ !BSB@UBDL

Slide 2

Slide 2 text

"CPVU.F w ߥ໦୎ !BSB@UBDL w '63:6$PSQ w "OESPJE΍ͬͯ·͢ w ,PUMJOॻ͍ͯ·͢

Slide 3

Slide 3 text

࠷ۙͷۈଵ؅ཧ͸ 4MBDLͰ΍ͬͯ·͢

Slide 4

Slide 4 text

͜Μͳײ͡

Slide 5

Slide 5 text

4MBDLͰͷۈଵ؅ཧ w ϝʔϧΑΓ΋ָͰྑ͍ײ͡ w ࠓ೔ɺ୭͕ٳΉͷ͔͸ḪΒͳ͍ͱ෼͔Βͳ͍ w ேྱͰಉ͡νʔϜͷਓ͕Θ͟Θ͟ใࠂͯͨ͠ ˠࠓ೔ɺٳΉਓ͕4MBDLͰ௨஌͞ΕͨΒ͍͍ͳʔ

Slide 6

Slide 6 text

,JOUBJ#PU࡞Γ·ͨ͠ OBNF OBNF OBNF OBNF

Slide 7

Slide 7 text

,JOUBJ#PU w 4MBDLͰͷɺΈΜͳͷۈଵൃݴΛه࿥ w ຖேɺͦͷ೔ͷର৅ऀΛूܭ w ໊લೖྗຊจΛ·ͱΊͯ౤ߘ OBNF OBNF OBNF OBNF

Slide 8

Slide 8 text

࢖ͬͨ΋ͷ w 4MBDL0VUHPJOH8FC)PPLT w (PPHMF"QQT4DSJQU ("4 w (PPHMFεϓϨουγʔτ

Slide 9

Slide 9 text

0VUHPJOH8FC)PPLT w 4MBDL΁ͷಛఆͷจࣈΛؚΉ౤ߘʹ൓Ԡ͢Δ w ࢦఆͨ͠63-ʹ1045ϦΫΤετΛ౤͛Δ w ϦΫΤετύϥϝʔλ͕౤ߘϢʔβʔ໊ɺ
 ౤ߘϝοηʔδͳͲΛؚΉ

Slide 10

Slide 10 text

(PPHMF"QQT4DSJQU w +BWBTDSJQUޓ׵ͷεΫϦϓτݴޠ w (PPHMFυΩϡϝϯτ΍εϓϨουγʔτͳͲͷ
 (PPHMF"QQTΛૢ࡞Ͱ͖Δ w ࣌ؒ΍)551ϦΫΤετΛτϦΨʔʹͯ͠
 ಈ͔͢͜ͱ͕Ͱ͖Δ

Slide 11

Slide 11 text

γεςϜߏ੒ ("4 ۈଵه࿥ (PPHMF 4QSFBE 4IFFU ("4
 ۈଵूܭ 0VUHPJOH
 8FC)PPLT ۈଵೖྗ ࠓ೔ͷۈଵ͸ʁ ूܭ݁Ռදࣔ 1045
 ϦΫΤετ σʔλΛ ه࿥ σʔλΛ औಘ 1045
 ϦΫΤετ ूܭ݁ՌΛ 4MBDLʹ౤ߘ

Slide 12

Slide 12 text

γεςϜߏ੒ ("4 ۈଵه࿥ (PPHMF 4QSFBE 4IFFU ("4
 ۈଵूܭ 0VUHPJOH
 8FC)PPLT ۈଵೖྗ ࠓ೔ͷۈଵ͸ʁ ूܭ݁Ռදࣔ 1045
 ϦΫΤετ σʔλΛ ه࿥ σʔλΛ औಘ 1045
 ϦΫΤετ ूܭ݁ՌΛ 4MBDLʹ౤ߘ

Slide 13

Slide 13 text

ۈଵه࿥ɿ4MBDL w ۈଵൃݴ͸શһ΄΅ಉ͡ϑΥʔϚοτͩͬͨ
 ྫ ʲશٳʳʢਫʣࢲ༻ͷͨΊ w ʮʲʯΛτϦΨʔʹ0VUHPJOH8FC)PPLTͰ
 ه࿥༻ͷ("4ʹ1045ϦΫΤετΛૹ৴ w 1045ϦΫΤετʹ͸౤ߘऀͱຊจ͕ࡌ͍ͬͯΔ

Slide 14

Slide 14 text

ۈଵه࿥ɿ("4 w 4MBDL͔Β1045ϦΫΤετΛड͚Δ w ຊจ͔Βਖ਼نදݱͰ೔෇Λநग़͢Δ
 ͜ͷ೔෇ΛɺٳΉ೔ͱͯ͠ѻ͏
 ྫ ʲશٳʳʢਫʣࢲ༻ͷͨΊˠ w ٳΉ೔ɺ౤ߘऀɺຊจΛεϓϨουγʔτʹه࿥

Slide 15

Slide 15 text

ۈଵه࿥ɿ("4 function doPost(e) { // ର৅ͷ೔෇Λநग़ var pattern = /(?:\d{4}\/|)([1-9]|0[1-9]|1[0-2])\/([1-9]|0[1-9]|[12][0-9]|3[01])/; var matchResult = e.parameter.text.match(pattern); var date = new Date().getFullYear() + "/" + matchResult[1] + "/" + matchResult[2]; // εϓϨουγʔτʹ೔෇ɺ໊લɺຊจΛه࿥ var sheet = getCurrentYearSpreadsheet().getSheets()[0]; var kintaiValues = sheet.getSheetValues(1, 1, maxRowCount, 3); var newLineRow = -1; for (var row = 0; row < 10000; row++) { var dateCell = kintaiValues[row][0]; if (dateCell == "") { newLineRow = row + 1; break; } } arrData = [ [date, e.parameter.user_name, e.parameter.text] ]; sheet.getRange(newLineRow, 1, 1, 3).setValues(arrData); }

Slide 16

Slide 16 text

%FNP ʮʲશٳʳʢਫʣࢲ༻ͷͨΊʯͱଧͬͯɺ εϓϨουγʔτʹ௥Ճ͞ΕΔͷΛݟͯΈΔ

Slide 17

Slide 17 text

γεςϜߏ੒ ("4 ۈଵه࿥ (PPHMF 4QSFBE 4IFFU ("4
 ۈଵूܭ 0VUHPJOH
 8FC)PPLT ۈଵೖྗ ࠓ೔ͷۈଵ͸ʁ ूܭ݁Ռදࣔ 1045
 ϦΫΤετ σʔλΛ ه࿥ σʔλΛ औಘ 1045
 ϦΫΤετ ूܭ݁ՌΛ 4MBDLʹ౤ߘ

Slide 18

Slide 18 text

γεςϜߏ੒ ("4 ۈଵه࿥ (PPHMF 4QSFBE 4IFFU ("4
 ۈଵूܭ 0VUHPJOH
 8FC)PPLT ۈଵೖྗ ࠓ೔ͷۈଵ͸ʁ ूܭ݁Ռදࣔ 1045
 ϦΫΤετ σʔλΛ ه࿥ σʔλΛ औಘ 1045
 ϦΫΤετ ूܭ݁ՌΛ 4MBDLʹ౤ߘ

Slide 19

Slide 19 text

ۈଵूܭɿ4MBDL w ࠓ೔ͷۈଵ͸ʁͱ͍͏4MBDLϦϚΠϯμʔΛ
 ࢝ۀͷ෼લʹηοτ
 SFNJOE,JOUBJUPࠓ೔ͷۈଵ͸ʁBUFWFSZXFFLEBZ w ࠓ೔ͷۈଵ͸ʁΛτϦΨʔʹ0VUHPJOH8FC)PPL
 Ͱूܭ༻ͷ("4ʹ1045ϦΫΤετ

Slide 20

Slide 20 text

ۈଵूܭɿ("4 w ۈଵه࿥ͷεϓϨουγʔτΛಡΈࠐΉ
 σʔλ͸೔෇ɺ౤ߘऀɺຊจ w ݱࡏ೔෇ͱಉ͡೔෇ͷσʔλ͚ͩநग़ w நग़ͨ͠σʔλ͔Β4MBDL౤ߘ༻ͷจΛ࡞੒ͯ͠
 4MBDLʹ౤ߘ͢Δ

Slide 21

Slide 21 text

ۈଵूܭɿ("4 function doPost(e) { var now = new Date(); var slackMessage = "```\n”; var sheet = getCurrentYearSpreadsheet().getSheets()[0]; var kintaiValues = sheet.getSheetValues(1, 1, maxRowCount, 3); for (var row = 1; row < 10000; row++) { var date = kintaiValues[row][0]; if (date == "") { break; } // ݱࡏ೔෇ͱಉ͡σʔλ͚ͩநग़ͯ͠ɺ౤ߘ༻ϝοηʔδʹ௥Ճ if (date.getFullYear() == now.getFullYear() && date.getMonth() == now.getMonth() && date.getDate() == now.getDate()) { var name = kintaiValues[row][1]; var text = kintaiValues[row][2]; slackMessage += name + " " + text + "\n"; } } slackMessage += "```"; sendToSlack(slackMessage); }

Slide 22

Slide 22 text

%FNP ʮࠓ೔ͷۈଵ͸ʁʯͱଧͬͯɺ ूܭ݁Ռ͕౤ߘ͞ΕΔͷΛݟͯΈΔ

Slide 23

Slide 23 text

࡞ͬͨײ૝ w (PPHMFυϥΠϒ্Ͱ׬݁ͨ͠ͷͰָͩͬͨ w (PPHMF"QQT4DSJQU͸໘ന͍ɻ͍Ζ͍ΖͰ͖ͦ͏ w #PU͸ՄѪ͍ɻ༊͞ΕΔ ࡞ͬͯΈͯ͸͍͔͕ʁ

Slide 24

Slide 24 text

ࠓޙ΍Γ͍ͨ͜ͱ w ՄѪ໊͍લͱΞΠίϯΛ͚͍ͭͨ w ೥຤ʹόάΔ͜ͱ͕Θ͔͍ͬͯΔͷͰͳΜͱ͔͢Δ w ΑΓ៉ྷͳϑΥʔϚοτͰूܭΛ౤ߘ͢Δ w औΓফ͠ػೳΛ͚ͭΔ w ϒϩάʹ·ͱΊΔ