SlideShare a Scribd company logo
https://bit.ly/2NghVzg
GoogleAppsScriptとLinebotで
予約管理botを作った
at Shibuya on 2018/10/2
https://supporterzcolab.com/event/546/
WATANABE Naoki
1
https://bit.ly/2NghVzg 2
https://bit.ly/2NghVzg
Contents
● Google Apps ScriptでSpread sheetを扱う
● Line Messaging APIを使っておうむ返しbotを作る
● spreadsheetとLine botで予約管理をする
3
https://bit.ly/2NghVzg 4
1 message
2 Post
5 Post
6 Message3 データ操作
4 データ操作の
結果
https://bit.ly/2NghVzg
Google Apps Script
5
https://bit.ly/2NghVzg
Google Apps Scriptとは
● Googleが提供する11のサービス (Slide, Spreadsheet, Calendar, Map, …) を操
作することができる
● オンラインで編集できる
● javascriptにしたがう (ただし、windowやES6には対応していない)
6
https://bit.ly/2NghVzg
Good and Bad of GAS
● プロトタイプ作成が容易
● 無料
● nginxやapacheを触らず済む
7
● Git管理に対応していない (有志が
作ったツールはある)
● spreadsheetにはatomicityがない
● ファイルをフォルダに分けられない
● spreadsheetに対するSQLを自作
する必要がある
https://bit.ly/2NghVzg
GASを使ってみる
- Getリクエストに対してjsonを返す -
8
https://bit.ly/2NghVzg 9
https://bit.ly/2NghVzg
doGetおよびdoPostは予約語。
10
https://bit.ly/2NghVzg 11
https://bit.ly/2NghVzg 12
https://bit.ly/2NghVzg 13
https://bit.ly/2NghVzg 14
https://bit.ly/2NghVzg 15
ソースコードの編集後はverを新しくする必要がある
https://bit.ly/2NghVzg
spreadsheetをデータベースに見立て
CRUDオペレーションを実装する
16
https://bit.ly/2NghVzg
createを実装する
17
https://bit.ly/2NghVzg 18
1 message
2 Post
5 Post
6 Message3 データ操作
4 データ操作の
結果
https://bit.ly/2NghVzg 19
https://bit.ly/2NghVzg 20
https://bit.ly/2NghVzg 21
https://bit.ly/2NghVzg 22
https://bit.ly/2NghVzg 23
https://bit.ly/2NghVzg
createをtestする
24
https://bit.ly/2NghVzg 25
https://bit.ly/2NghVzg 26
https://bit.ly/2NghVzg 27
https://bit.ly/2NghVzg 28
https://bit.ly/2NghVzg 29
https://bit.ly/2NghVzg
他のオペレーションはgistにあります
Read, Deleteについてはgistに掲載。Updateは省略した。
30
https://bit.ly/2NghVzg
LINE messaging API
31
https://bit.ly/2NghVzg 32
https://bit.ly/2NghVzg 33
https://bit.ly/2NghVzg 34
1 message
2 Post
5 Post
6 Message3 データ操作
4 データ操作の
結果
https://bit.ly/2NghVzg
おうむ返しbotを作る
35
https://bit.ly/2NghVzg
LINE DEVELOPER CONSOLEでbotを登録
https://developers.line.me/ja/
36
https://bit.ly/2NghVzg 37
https://bit.ly/2NghVzg 38
https://bit.ly/2NghVzg 39
https://bit.ly/2NghVzg
LINEで「予約作成」と入力すると
一週間後の日時がspreadsheetに
追加されるようにする
40
https://bit.ly/2NghVzg 41
1 message
2 Post
5 Post
6 Message3 データ操作
4 データ操作の
結果
https://bit.ly/2NghVzg 42
https://bit.ly/2NghVzg
参考
Google Apps Script Doc
https://developers.google.com/apps-script/reference/document/
Line Messaging API Doc
https://developers.line.me/en/reference/messaging-api/
CRUD Operation in Google Apps Script and Line Bot
https://gist.github.com/asterisk37n/7ba08590a7ab461a6e5d0552f8801af5
43

More Related Content

Similar to LINE bot with Google Apps Script to manage reservation

サーバーレスで作る スマホアプリバックエンド
サーバーレスで作るスマホアプリバックエンドサーバーレスで作るスマホアプリバックエンド
サーバーレスで作る スマホアプリバックエンド
Tsukasa Kato
 
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
Yoshitaka Seo
 
Geo x html5 on MapsAPI three minutes cooking
Geo x html5 on MapsAPI three minutes cooking Geo x html5 on MapsAPI three minutes cooking
Geo x html5 on MapsAPI three minutes cooking
Kentaro Ishimaru
 
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
MasashiOtsuka1
 
20111203 gdd2011フィードバック 公開用
20111203 gdd2011フィードバック 公開用20111203 gdd2011フィードバック 公開用
20111203 gdd2011フィードバック 公開用
tksyokoyama
 
【InfraCommunityCafe小話】DISCAL BOT操作方法まとめ
【InfraCommunityCafe小話】DISCAL BOT操作方法まとめ【InfraCommunityCafe小話】DISCAL BOT操作方法まとめ
【InfraCommunityCafe小話】DISCAL BOT操作方法まとめ
uniyama
 
Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Go
yaegashi
 
Dart flightschool cloudendpoint with dart
Dart flightschool cloudendpoint with dartDart flightschool cloudendpoint with dart
Dart flightschool cloudendpoint with dart啓介 大橋
 
【React×firebase】サービス開発入門ハンズオン
【React×firebase】サービス開発入門ハンズオン【React×firebase】サービス開発入門ハンズオン
【React×firebase】サービス開発入門ハンズオン
HirokiTakatani
 
go generate 完全入門
go generate 完全入門go generate 完全入門
go generate 完全入門
yaegashi
 
Skype for Business + Bot + Graph API
Skype for Business + Bot + Graph APISkype for Business + Bot + Graph API
Skype for Business + Bot + Graph API
Yoshitaka Seo
 
はじめてのモバイルウェブアプリ 2
はじめてのモバイルウェブアプリ 2はじめてのモバイルウェブアプリ 2
はじめてのモバイルウェブアプリ 2
Taisuke Fukuno
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
 
gcp ja night #27 Google Cloud Endpoints with Golang
gcp ja night #27 Google Cloud Endpoints with Golanggcp ja night #27 Google Cloud Endpoints with Golang
gcp ja night #27 Google Cloud Endpoints with Golang
啓介 大橋
 
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSourceMashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
cmutoh
 
Azure Webinar : Microsoft Bot Framework ではじめるチャットボット開発_20180301
Azure Webinar : Microsoft Bot Framework ではじめるチャットボット開発_20180301Azure Webinar : Microsoft Bot Framework ではじめるチャットボット開発_20180301
Azure Webinar : Microsoft Bot Framework ではじめるチャットボット開発_20180301
Ayako Omori
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことMasakazu Muraoka
 
Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築Naomichi Yamakita
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
拓将 平林
 

Similar to LINE bot with Google Apps Script to manage reservation (20)

サーバーレスで作る スマホアプリバックエンド
サーバーレスで作るスマホアプリバックエンドサーバーレスで作るスマホアプリバックエンド
サーバーレスで作る スマホアプリバックエンド
 
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
 
Geo x html5 on MapsAPI three minutes cooking
Geo x html5 on MapsAPI three minutes cooking Geo x html5 on MapsAPI three minutes cooking
Geo x html5 on MapsAPI three minutes cooking
 
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
 
20111203 gdd2011フィードバック 公開用
20111203 gdd2011フィードバック 公開用20111203 gdd2011フィードバック 公開用
20111203 gdd2011フィードバック 公開用
 
【InfraCommunityCafe小話】DISCAL BOT操作方法まとめ
【InfraCommunityCafe小話】DISCAL BOT操作方法まとめ【InfraCommunityCafe小話】DISCAL BOT操作方法まとめ
【InfraCommunityCafe小話】DISCAL BOT操作方法まとめ
 
Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Go
 
Dart flightschool cloudendpoint with dart
Dart flightschool cloudendpoint with dartDart flightschool cloudendpoint with dart
Dart flightschool cloudendpoint with dart
 
【React×firebase】サービス開発入門ハンズオン
【React×firebase】サービス開発入門ハンズオン【React×firebase】サービス開発入門ハンズオン
【React×firebase】サービス開発入門ハンズオン
 
go generate 完全入門
go generate 完全入門go generate 完全入門
go generate 完全入門
 
Skype for Business + Bot + Graph API
Skype for Business + Bot + Graph APISkype for Business + Bot + Graph API
Skype for Business + Bot + Graph API
 
はじめてのモバイルウェブアプリ 2
はじめてのモバイルウェブアプリ 2はじめてのモバイルウェブアプリ 2
はじめてのモバイルウェブアプリ 2
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
gcp ja night #27 Google Cloud Endpoints with Golang
gcp ja night #27 Google Cloud Endpoints with Golanggcp ja night #27 Google Cloud Endpoints with Golang
gcp ja night #27 Google Cloud Endpoints with Golang
 
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSourceMashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
 
Azure Webinar : Microsoft Bot Framework ではじめるチャットボット開発_20180301
Azure Webinar : Microsoft Bot Framework ではじめるチャットボット開発_20180301Azure Webinar : Microsoft Bot Framework ではじめるチャットボット開発_20180301
Azure Webinar : Microsoft Bot Framework ではじめるチャットボット開発_20180301
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
 
Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 

More from Naoki Watanabe

Deep learning basics described
Deep learning basics describedDeep learning basics described
Deep learning basics described
Naoki Watanabe
 
shuumai deep learning
shuumai deep learning shuumai deep learning
shuumai deep learning
Naoki Watanabe
 
アントレプレナーシップ論講座の卒業生による話(2019/04/20)
アントレプレナーシップ論講座の卒業生による話(2019/04/20)アントレプレナーシップ論講座の卒業生による話(2019/04/20)
アントレプレナーシップ論講座の卒業生による話(2019/04/20)
Naoki Watanabe
 
Basic explanation of Generative adversarial networks on MNIST
Basic explanation of Generative adversarial networks on MNISTBasic explanation of Generative adversarial networks on MNIST
Basic explanation of Generative adversarial networks on MNIST
Naoki Watanabe
 
Lecuture on Deep Learning API
Lecuture on Deep Learning APILecuture on Deep Learning API
Lecuture on Deep Learning API
Naoki Watanabe
 
tinder automation
tinder automationtinder automation
tinder automation
Naoki Watanabe
 
Programming Lecture 2nd - Flask and Heroku in Python -
Programming Lecture 2nd - Flask and Heroku in Python -Programming Lecture 2nd - Flask and Heroku in Python -
Programming Lecture 2nd - Flask and Heroku in Python -
Naoki Watanabe
 
Programming Lecture 1st
Programming Lecture 1stProgramming Lecture 1st
Programming Lecture 1st
Naoki Watanabe
 
Lecture for Bootstrap and flask in Python
Lecture for Bootstrap and flask in PythonLecture for Bootstrap and flask in Python
Lecture for Bootstrap and flask in Python
Naoki Watanabe
 
Mcluhan’s medium
Mcluhan’s mediumMcluhan’s medium
Mcluhan’s medium
Naoki Watanabe
 
Bitcoin4beginners
Bitcoin4beginnersBitcoin4beginners
Bitcoin4beginners
Naoki Watanabe
 
物理はどこで発見されるか
物理はどこで発見されるか物理はどこで発見されるか
物理はどこで発見されるか
Naoki Watanabe
 
ちょうかんたんワインこうざ
ちょうかんたんワインこうざちょうかんたんワインこうざ
ちょうかんたんワインこうざ
Naoki Watanabe
 

More from Naoki Watanabe (13)

Deep learning basics described
Deep learning basics describedDeep learning basics described
Deep learning basics described
 
shuumai deep learning
shuumai deep learning shuumai deep learning
shuumai deep learning
 
アントレプレナーシップ論講座の卒業生による話(2019/04/20)
アントレプレナーシップ論講座の卒業生による話(2019/04/20)アントレプレナーシップ論講座の卒業生による話(2019/04/20)
アントレプレナーシップ論講座の卒業生による話(2019/04/20)
 
Basic explanation of Generative adversarial networks on MNIST
Basic explanation of Generative adversarial networks on MNISTBasic explanation of Generative adversarial networks on MNIST
Basic explanation of Generative adversarial networks on MNIST
 
Lecuture on Deep Learning API
Lecuture on Deep Learning APILecuture on Deep Learning API
Lecuture on Deep Learning API
 
tinder automation
tinder automationtinder automation
tinder automation
 
Programming Lecture 2nd - Flask and Heroku in Python -
Programming Lecture 2nd - Flask and Heroku in Python -Programming Lecture 2nd - Flask and Heroku in Python -
Programming Lecture 2nd - Flask and Heroku in Python -
 
Programming Lecture 1st
Programming Lecture 1stProgramming Lecture 1st
Programming Lecture 1st
 
Lecture for Bootstrap and flask in Python
Lecture for Bootstrap and flask in PythonLecture for Bootstrap and flask in Python
Lecture for Bootstrap and flask in Python
 
Mcluhan’s medium
Mcluhan’s mediumMcluhan’s medium
Mcluhan’s medium
 
Bitcoin4beginners
Bitcoin4beginnersBitcoin4beginners
Bitcoin4beginners
 
物理はどこで発見されるか
物理はどこで発見されるか物理はどこで発見されるか
物理はどこで発見されるか
 
ちょうかんたんワインこうざ
ちょうかんたんワインこうざちょうかんたんワインこうざ
ちょうかんたんワインこうざ
 

Recently uploaded

生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 

Recently uploaded (7)

生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 

LINE bot with Google Apps Script to manage reservation