Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
GASとGAE
〜その他GAEをだらだらと〜
お前、誰よ
何やってる?
http://www.kabuku.co.jp
アジェンダ
1. 今日のゴール
2. 私とGAEとGAS
3. GASとは
4. GAEとGASの連携
5. 別の連携
6. 時間があったらオレオレGAEのTips
今日のゴール
• GASを知らない人
– GASをとりあえず知る
– 帰ったら触る
• GAEを知らない人
– GASをとりあえず知る
– 帰ったら触る
• どっちも知ってる人
– 連携する利点を知る
• もう連携してる人
– 違う解を知る
ゴ...
私と
GASと
GAE
私とGAE
• GAEとは2009年07月ゴロから
–GAE/Pが2008年4月(preview)
–GAE/Jが2009年4月
• 言語とフレームワークとなんか色々
– Java -> サーバ構築 -> テスター & VBA -> C(CGI...
つまり
雑食
私とGAS
• GASとは2010年12月ゴロから
– GASは2009年8月
– 一応2014年からGDE
– 正直最近GASよりもGCPのほうが(ゲフンゲフン
• 2013年10月ぐらいからExpert
• 幾つかのライブラリーを出して...
GASとは?
GAS
• Google Apps Script
–通称GAS、ガス、ギャス
–海外圏ではApps Script
• Googleが提供する
– サーバサイドスクリプト実行環境 & 開発ツール
• 2009年発
• 開発言語:JavaScrip...
使
い
所
GASの使い所
• 小さいタスクの自動化
–定期レポート
–マスターデータメンテ
• DBは触れないユーザでもSpreadsheetsはされる
• Spreadsheetsのほうで集計して別の場所に入れる
–小さい運用フロー
• 管理画面作るほ...
特
徴
GASの特徴
• 簡単
–3行でメール送信
–数行でGoogleサービス連携
ゴール 私と GAS 連携 別 その他
function myFunction() {
MailApp.sendEmail("gcpug@example.com", ...
GASの特徴
• 開発環境不要
–すべてブラウザ上で開発可能
• https://script.google.com
ゴール 私と GAS 連携 別 その他
GASの特徴
• 無料
–まじで無料
–メール送信数など一部制限あり
–逆に金で解決は無理
ゴール 私と GAS 連携 別 その他
GASの特徴
• 実行スピードは速くない
–書き方によってかなり変わる
• 70倍以上違う時もある
• 最近は開発環境側で指摘してくれる
–最大6分しか動かない
–普通のJSのスピード間隔じゃないほうが良い
ゴール 私と GAS 連携 別 その他
GASの特徴
• 自動化
– 時間指定やイベントドリブンで動かせる
• 時間指定
• 定期実行
– 分毎、日毎、週毎(曜日指定)、月毎
• Spread Sheetsの表示/更新
• Google Formに回答
• Google Sitesの...
デ
モ
GASとGAE
連携
連携
• GASとGAEは幾つかの方法で連携できる
–1
–2
–3
–4
ゴール 私と GAS 連携 別 その他
HTTPS ( &OAuth2)
HTTPS
Execution API
Log Subscribe
HTTPS
( &OAuth2)
• GASからGAE
–UrlFetchApp を利用してHTTP経由で送る
–GASからGAEは基本この方法だけ
ゴール 私と GAS 連携 別 その他HTTPS ( &OAuth2)
function myFunction() {
UrlF...
• GASからGAE
–認証する場合はOAuth Tokenをつける
–GAEはoauthモジュールで認証
• Application(GAS側)を限定するならclient-idで絞
る
ゴール 私と GAS 連携 別 その他HTTPS ( &...
• GASからGAE with OAuth2
– GAS側コード
– Session.getActiveUser()でoauth scopeを設定
– ScriptApp.getOAuthToken()でtoken取得
ゴール 私と GAS 連...
• GASからGAE with OAuth2
– GAE側コード
– OAuth2認証を使う
ゴール 私と GAS 連携 別 その他HTTPS ( &OAuth2)
HTTPS
• GAEからGAS 1
–GAS側にHTTPで呼び出す口を作る
ゴール 私と GAS 連携 別 その他HTTPS
• GAEからGAS 1
– GAE側からurlfetchで呼びだす
– 認証は…(ゲフンゲフン
• 方法がないので基本secret keyでやる
•
ゴール 私と GAS 連携 別 その他HTTPS
• GAEからGAS 1
– 認証
• 厳密にはGAS->GAE同様の方法もある
GAS側
•
ゴール 私と GAS 連携 別 その他HTTPS
• GAEからGAS 1
– 認証
• 厳密にはGAS->GAE同様の方法もある
GAE側
•
ゴール 私と GAS 連携 別 その他HTTPS
Execution
API
• GAEからGAS
–GASのExecution APIを利用する
• 資料作るのがアレだったので昔のBlogを…
– http://qiita.com/soundTricker/items/1bcfc5c9e80d29a7
ae4b
• E...
• GAE Pub/Sub GAS
–単純にGAEの何かしらをふっくしてGASで
処理したいのであれば Pub/Subを使うパター
ンも有る
–GAE -> (Log) -> Cloud Logging -> Pub/Sub -
> GASのパ...
• GAE Pub/Sub GAS
–http://qiita.com/soundTricker/items/a9569b5e
d71d15429444
ゴール 私と GAS 連携 別 その他
別連携
別の方法
• 直接APIコール
– ぶっちゃけ普通にAPIコールをすればよい
• そのほうが後々汎用性高いよ
• Datastore弄りたいなら
– GASからCloud Datastore API 呼べるよ
• Cloud Functions...
その他
その他
• app_identify
– appengineでappengine周りの情報を取るモジュール
– access_tokenを取得できる 素敵
• google.appengine.ext.admin.application
– ロ...
We are hiring
人材募集中フロントエンド http://www.kabuku.co.jp/jobs/front-end-developer
バックエンド http://www.kabuku.co.jp/jobs/backend-de...
GCPUG Shonan GAS & GAE
GCPUG Shonan GAS & GAE
GCPUG Shonan GAS & GAE
GCPUG Shonan GAS & GAE
GCPUG Shonan GAS & GAE
GCPUG Shonan GAS & GAE
GCPUG Shonan GAS & GAE
Upcoming SlideShare
Loading in …5
×

GCPUG Shonan GAS & GAE

1,008 views

Published on

GASとGAE

Published in: Engineering
  • Be the first to comment

GCPUG Shonan GAS & GAE

  1. 1. GASとGAE 〜その他GAEをだらだらと〜
  2. 2. お前、誰よ
  3. 3. 何やってる?
  4. 4. http://www.kabuku.co.jp
  5. 5. アジェンダ 1. 今日のゴール 2. 私とGAEとGAS 3. GASとは 4. GAEとGASの連携 5. 別の連携 6. 時間があったらオレオレGAEのTips
  6. 6. 今日のゴール • GASを知らない人 – GASをとりあえず知る – 帰ったら触る • GAEを知らない人 – GASをとりあえず知る – 帰ったら触る • どっちも知ってる人 – 連携する利点を知る • もう連携してる人 – 違う解を知る ゴール 私と GAS 連携 別 その他
  7. 7. 私と GASと GAE
  8. 8. 私とGAE • GAEとは2009年07月ゴロから –GAE/Pが2008年4月(preview) –GAE/Jが2009年4月 • 言語とフレームワークとなんか色々 – Java -> サーバ構築 -> テスター & VBA -> C(CGI) -> SAStruts+Maven+Jenkins -> GAE -> GWT + JS -> slim3 -> GAS(expert) -> Android -> CoffeeScript+Grunt -> AngularJS -> 営業 -> AWS+chef+Ansible -> Go -> TypeScript+CircleCI+Docker -> GCP + Docker -> Python ※プロジェクトじゃなくてマジで触ってたもの限定 ゴール 私と GAS 連携 別 その他
  9. 9. つまり
  10. 10. 雑食
  11. 11. 私とGAS • GASとは2010年12月ゴロから – GASは2009年8月 – 一応2014年からGDE – 正直最近GASよりもGCPのほうが(ゲフンゲフン • 2013年10月ぐらいからExpert • 幾つかのライブラリーを出してる ゴール 私と GAS 連携 別 その他
  12. 12. GASとは?
  13. 13. GAS • Google Apps Script –通称GAS、ガス、ギャス –海外圏ではApps Script • Googleが提供する – サーバサイドスクリプト実行環境 & 開発ツール • 2009年発 • 開発言語:JavaScript ゴール 私と GAS 連携 別 その他
  14. 14. 使 い 所
  15. 15. GASの使い所 • 小さいタスクの自動化 –定期レポート –マスターデータメンテ • DBは触れないユーザでもSpreadsheetsはされる • Spreadsheetsのほうで集計して別の場所に入れる –小さい運用フロー • 管理画面作るほどじゃないけど… • 軽いノリでなんかを作る ゴール 私と GAS 連携 別 その他
  16. 16. 特 徴
  17. 17. GASの特徴 • 簡単 –3行でメール送信 –数行でGoogleサービス連携 ゴール 私と GAS 連携 別 その他 function myFunction() { MailApp.sendEmail("gcpug@example.com", "テストタイトル", "本文"); } function myFunction() { var data = SpreadsheetApp.openById(id).getSheetByName("顧客名簿 ").getRange("A2:D2").getValues()[0]; var email = data[0]; var name = data[1]; var subject = data[2]; var body = data[3]; MailApp.sendEmail(email, subject, body.replace(/name/mg, name)); }
  18. 18. GASの特徴 • 開発環境不要 –すべてブラウザ上で開発可能 • https://script.google.com ゴール 私と GAS 連携 別 その他
  19. 19. GASの特徴 • 無料 –まじで無料 –メール送信数など一部制限あり –逆に金で解決は無理 ゴール 私と GAS 連携 別 その他
  20. 20. GASの特徴 • 実行スピードは速くない –書き方によってかなり変わる • 70倍以上違う時もある • 最近は開発環境側で指摘してくれる –最大6分しか動かない –普通のJSのスピード間隔じゃないほうが良い ゴール 私と GAS 連携 別 その他
  21. 21. GASの特徴 • 自動化 – 時間指定やイベントドリブンで動かせる • 時間指定 • 定期実行 – 分毎、日毎、週毎(曜日指定)、月毎 • Spread Sheetsの表示/更新 • Google Formに回答 • Google Sitesのリンク • Google Docsを表示 • メニューからクリック – UIも持てる ゴール 私と GAS 連携 別 その他
  22. 22. デ モ
  23. 23. GASとGAE 連携
  24. 24. 連携 • GASとGAEは幾つかの方法で連携できる –1 –2 –3 –4 ゴール 私と GAS 連携 別 その他 HTTPS ( &OAuth2) HTTPS Execution API Log Subscribe
  25. 25. HTTPS ( &OAuth2)
  26. 26. • GASからGAE –UrlFetchApp を利用してHTTP経由で送る –GASからGAEは基本この方法だけ ゴール 私と GAS 連携 別 その他HTTPS ( &OAuth2) function myFunction() { UrlFetchApp.fetch("https://app-id.appspot.com", { method: "POST", contentType: "application/json", payload: { "key": "value" } }); }
  27. 27. • GASからGAE –認証する場合はOAuth Tokenをつける –GAEはoauthモジュールで認証 • Application(GAS側)を限定するならclient-idで絞 る ゴール 私と GAS 連携 別 その他HTTPS ( &OAuth2)
  28. 28. • GASからGAE with OAuth2 – GAS側コード – Session.getActiveUser()でoauth scopeを設定 – ScriptApp.getOAuthToken()でtoken取得 ゴール 私と GAS 連携 別 その他HTTPS ( &OAuth2)
  29. 29. • GASからGAE with OAuth2 – GAE側コード – OAuth2認証を使う ゴール 私と GAS 連携 別 その他HTTPS ( &OAuth2)
  30. 30. HTTPS
  31. 31. • GAEからGAS 1 –GAS側にHTTPで呼び出す口を作る ゴール 私と GAS 連携 別 その他HTTPS
  32. 32. • GAEからGAS 1 – GAE側からurlfetchで呼びだす – 認証は…(ゲフンゲフン • 方法がないので基本secret keyでやる • ゴール 私と GAS 連携 別 その他HTTPS
  33. 33. • GAEからGAS 1 – 認証 • 厳密にはGAS->GAE同様の方法もある GAS側 • ゴール 私と GAS 連携 別 その他HTTPS
  34. 34. • GAEからGAS 1 – 認証 • 厳密にはGAS->GAE同様の方法もある GAE側 • ゴール 私と GAS 連携 別 その他HTTPS
  35. 35. Execution API
  36. 36. • GAEからGAS –GASのExecution APIを利用する • 資料作るのがアレだったので昔のBlogを… – http://qiita.com/soundTricker/items/1bcfc5c9e80d29a7 ae4b • Execution APIではService Accountが使えないの で結構めんどいかも ゴール 私と GAS 連携 別 その他Execution API
  37. 37. • GAE Pub/Sub GAS –単純にGAEの何かしらをふっくしてGASで 処理したいのであれば Pub/Subを使うパター ンも有る –GAE -> (Log) -> Cloud Logging -> Pub/Sub - > GASのパターン –適用例 • BigQueryにデータ突っ込む • エラーログをSlackに流す ゴール 私と GAS 連携 別 その他
  38. 38. • GAE Pub/Sub GAS –http://qiita.com/soundTricker/items/a9569b5e d71d15429444 ゴール 私と GAS 連携 別 その他
  39. 39. 別連携
  40. 40. 別の方法 • 直接APIコール – ぶっちゃけ普通にAPIコールをすればよい • そのほうが後々汎用性高いよ • Datastore弄りたいなら – GASからCloud Datastore API 呼べるよ • Cloud Functions – 最後の例はCloud Functionsで置き換えられるよ – GAE -> (Log) -> Cloud Logging -> Pub/Sub -> Cloud Functions のパターン – めんどくさいから実際に動いてるコード見せるお ゴール 私と GAS 連携 別 その他
  41. 41. その他
  42. 42. その他 • app_identify – appengineでappengine周りの情報を取るモジュール – access_tokenを取得できる 素敵 • google.appengine.ext.admin.application – ローカルで動いているadmin画面が本番でも使える – Pyhtonだとinteractiveコンソールが使える マジ素敵 • Cloud Playground – appengine(python)用のweb playground – あれどうだったけをちょろく試すのに便利 – https://cloud-playground.appspot.com/playground/ ゴール 私と GAS 連携 別 その他
  43. 43. We are hiring 人材募集中フロントエンド http://www.kabuku.co.jp/jobs/front-end-developer バックエンド http://www.kabuku.co.jp/jobs/backend-developer C/C++プログラマ http://www.kabuku.co.jp/jobs/cg-cad-programmer ※ 3Dプリンター/フィラメント使いたい放題の福利厚生付き

×