Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20220706_Google Apps Scriptを実演で学ぶ~ GAS × Slack ~
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Apachan
July 06, 2022
Programming
2
1.6k
20220706_Google Apps Scriptを実演で学ぶ~ GAS × Slack ~
Apachan
July 06, 2022
Tweet
Share
More Decks by Apachan
See All by Apachan
20220428_実務で使える Google Apps Script ライブデモ勉強会#3
apachan
0
520
20211111_実務で使えるGASライブデモ勉強会#2
apachan
0
110
20210921_LT_RPAの現実
apachan
0
2.6k
20210827_RPA勉強会!Google Apps Talk~GASでGmail活用術~
apachan
0
10k
実務で使えるGASライブデモ勉強会
apachan
0
100
Other Decks in Programming
See All in Programming
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
970
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
4
220
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
680
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.3k
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6k
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
640
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
160
登壇資料を作る時に意識していること #登壇資料_findy
konifar
1
500
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
5.9k
Implementation Patterns
denyspoltorak
0
280
Vibe codingでおすすめの言語と開発手法
uyuki234
0
220
Featured
See All Featured
KATA
mclloyd
PRO
34
15k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Building Applications with DynamoDB
mza
96
6.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
920
Skip the Path - Find Your Career Trail
mkilby
0
52
What's in a price? How to price your products and services
michaelherold
247
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Transcript
2021/07/06 1 ※ 本内容は個人的な見解であり、所属する組織と関係ありません。 Google Apps Script を実演で学ぶ ~ GAS
× Slack ~ Block Kit Builderを使おう
自己紹介 あぱchan @ApachanHonpo 埼玉県戸田市 宮城県仙台市 業務効率化のお仕事 2 2021年 11月 WinActor
トーク 6ヵ月20kg減
執筆書籍 3 徹底解説 RPAツールWinActor導入 ・応用 完全ガイド 絶対失敗しない!ロボット1000体 導入してわかったRPA成功の秘訣 Google Apps
Script目的別リファ レンス実践サンプルコード付き 需要のある技術を中心に出版社に提案 第3版 2021/3 発売 第1版 2020/5 発売 第1版 2020/8 発売 Google Apps Script目的別リファ レンス実践サンプルコード付き 第2版 2022/5 新発売
主なイベント登壇 4 RPA Community Google Apps Script の特徴・利用のきっかけ 必要な情報をメールから取得する方法 TechStreet
vol.1 2021/07 vol.2 2021/11 vol.3 2022/04 2022/7/6 Google Apps Scriptを実演で学ぶ~「GAS×Slack」 &「GAS×Notion」~
テーマ 5 Block Kit Builderを使おう
6 Block Kit クリーンで一貫性のあるUIフレームワーク https://api.slack.com/block-kit
7 Block Kit Builder 画面操作でUIを作成 UI選択 UI反映 編集 ※ ワークスペースへのサインイン必須
8 今回のデモ ① Slackチャンネルに通知 GAS プロジェクト Slack チャンネル ② Slackチャンネルからの通信(参考)
9 ワークフロー① 難易度:易 Slackチャンネルに通知 GAS プロジェクト Slack チャンネル
10 Incoming Webhook パターン 利用可能プラン 説明 カスタムインテグレー ション 全プラン かんたんに設定できますが、現在Slack社より非推奨
とされています。 SlackApp 全プラン やや複雑ですが手順がわかれば利用自体は難しくあ りません。 ワークフロービルダー スタンダード以上 ※ フリープラン不 可 かんたんに設定できますが、フリープランでは利用 できません。テキストにメンションやハイパーリン ク文字列など入れることができません。 ※ レスポンスが必要な場合はAPI利用
11 Slack App https://api.slack.com/apps Webhook URLの取得 ※ 無償版のアプリ作成は10個迄
12 Let’s Try
13 前提 function sendSlackMessage_ (url, data) { const params =
{ method: 'post', contentType: 'application/json' , payload: JSON.stringify(data) }; const res = UrlFetchApp.fetch(url, params); return res; } スクリプトプロパティの活用 Slack通知処理の分割
14 コーディング const PROPS = PropertiesService.getScriptProperties(); function gasToSlack() { const
webhook = PROPS.getProperty('webhook'); console.log(webhook); const data = { // Bloclk Kit コード 貼り付け }; const response = sendSlackMessage_(webhook, data); Logger.log(response); } スクリプトプロパティ Slack通知処理の分割
Slack チャンネル 15 ワークフロー➁ 難易度:中~高 Slackチャンネルからの通信 GAS プロジェクト デプロイなど各種設定、 doPost()、GCP...など
Block Kit 16 勤怠アプリ
17 GAS側 Webアプリ HTTPリクエストの取得 発動する関数 doPost(e)
18 Slack側 エンドポイント SlackからGASの通信設定
Code Slackからのリクエスト取得 19 function doPost(e) { console.log(e); Logger.log(e); // 意図的にエラー
宣言してない変数 name }
ログの比較 20 GAS GCP 何もなし ログ参照
Code シートへの書き出し 21 function doPost(e) { const payload = JSON.parse(e['parameter']['payload']);
const ssId = PROPS.getProperty('SSID'); const sh = SpreadsheetApp.openById(ssId).getSheets()[0]; sh.appendRow([payload]); }
Demo 22
課題のまとめ 23 ① doPost(e) GASのプロジェクトからログが参照できません GCPに連携してロギングを参照するか、スプレッドシートなどに書き出す必要あり ② JSON解析 階層が深い...リファレンスを見た方が良いのかも... ③
デプロイ Slackからの通信のため「テストのデプロイ」が利用できません コードが変わる度にデプロイの必要あり ④ 非同期通信 UI入力毎に通信が走る おそらく同期処理にできるはず... ⑤ 例外処理の設定 想定外のリクエストの処理
① doPost(e) GCPのロギング 24 ログの参照
② JSON解析 e['parameter']['payload'] 25 登録ボタンの判定 ユーザーの取得 入力内容の取得
Appendix 26
27 Google Slides
End Of File 28