2018年12月20日

プログラミング

GASでGoogleフォームの投稿をSlackに通知する方法(前編)

目次

  1. はじめに
  2. Google Apps Script(GAS)とは?
  3. Google フォームを作成する
  4. スクリプトを書いて実行してみる
  5. まとめ

はじめに

新しい技術にチャレンジし続けるeishisのアドベントカレンダーDay20です!

昨日は自社サービスのリブランディングに向けた第二弾「自社サービスのUX調査と競合アプリの比較マッピング」という記事でした。

サービスのリブランディングに向けてユーザー利用状況グラフとポジショニングマップ作ってみた

今日は、Googleが提供する「Google Apps Script」についてご紹介します!

Google Apps Script(GAS)とは?

Google Apps Script(GAS)は、Googleが提供するサーバーサイド・スクリプト環境です。

JavaScriptでスクリプトを書くことによって、Googleが提供しているサービスを操ることができるという、とても便利なサービスです。

GASでできること

GASはGoogleが提供していることもあって、Googleのサービスとの連携がとても簡単にできます。

例えば、

  • Gmail
  • Google カレンダー
  • Google スプレッドシート
  • Google フォーム
  • Google アナリティクス

など、ほかにもいろいろなサービスと連携することができます。

また、外部のサービスで提供されているAPIを利用して操作することも可能です。
サーバーの用意をせずに、GASでAPIを作成することもできてしまいます。

それでは、今回はこのGASを活用して、「Google フォームに投稿された内容をslackに通知する」ということを実現したいと思います。

前編の今回は、Googleフォームを作成し、GASでスクリプトを実行する方法やデバッグの仕方をご紹介します。

Google フォームを作成する

まずはGoogle ドライブにアクセスして、Google フォームを作成しましょう。

今回は以下のように、「名前」「メールアドレス」「内容」という3つのフィールドがあるフォームを作成しました。

form.png (34.9 kB)

スクリプトを書いて実行してみる

フォームの内容を取得したりslack通知を送るスクリプトを書く前に、簡単なスクリプトを書いて実行してみましょう。

GASのエディタでスクリプトを書く

先ほど作成したGoogle フォームの右上のボタンをクリックして、「スクリプトエディタ」を選択します。
gas2.png (54.1 kB)

そうすると、以下のような画面になりました。
ここにJavaScriptでスクリプトを書いていきます。
gas3.png (29.2 kB)

POINT!!

Googleに複数アカウントでログインしている場合、GASのスクリプトエディタを開こうとすると、「現在、ファイルを開くことができません。」とエラーが出てしまいます。

この場合は、フォームを作成したGoogleアカウントをデフォルトアカウントにするか、ほかにログインしているアカウントをすべてログアウトすると解決できます。
(私はすべてのアカウントをログアウトすると面倒なので、GASを使うときはシークレットブラウザで作業しています)

まずは、簡単なスクリプトを書いて実行してみましょう!
下記のコードをコピーして、先程のGASのエディタにペーストしてください。

function myFunction() {
var message = 'Hello world!';
Logger.log(message);
}

「Hello world!」という文字列をログに出力するスクリプトです。
GAS では、 Logger.log()という関数でログを出力することができます
スクリプトを作成するときにたくさん使うことになるので、覚えておきましょう。

スクリプトを実行してログを確認する

それでは早速スクリプトを実行してみます。
エディタ上部の再生ボタンのような部分をクリックすると、スクリプトが実行されます。

gas4.png (27.6 kB)

「関数 myFunction を実行中」という文字が画面の上部に表示されたと思います。
その表示が消えたら、ログを確認してみましょう。
正常に動作していれば、「Hello world!」と出力されているはずです。

エディタ上部の「表示」から「ログ」を選択します。
gas5.png (40.0 kB)

正しくログが表示されていました!
gas6.png (14.1 kB)

まとめ

今回はGASでできることや、実際にGASで簡単なスクリプトを実行する方法をご紹介しました。

後編では、作成したGoogleフォームに投稿された内容をslackに通知する部分の実装をしていきます!

2

0

AUTHOR

うえまつゆい エンジニア

サーバーサイドエンジニアからフロントエンドエンジニアになりました。主にReact Nativeでのアプリ開発をしています。

アプリでもっと便利に!気になる記事をチェック!

記事のお気に入り登録やランキングが表示される昨日に対応!毎日の情報収集や調べ物にもっと身近なメディアになりました。

eishisでは一緒に働く仲間を募集しています

正社員や業務委託、アルバイトやインターンなど雇用形態にこだわらず、
ベテランの方から業界未経験の方まで様々なかたのお力をお借りしたいと考えております。

話を聞いてみたい

運営メンバー

eishis

Eishi Saito 総務

SIerやスタートアップ、フリーランスを経て2016年11月にeishis, Inc.を設立。 マーケター・ディレクター・エンジニアなど何でも屋。 COBOLからReactまで色んなことやります。

sasakki デザイナー

アメリカの大学を卒業後、日本、シンガポールでデザイナーとして活動。

しまだ デザイナー

WebAR/VRのデザインと3DCG制作がメインです。 肩書きは「アニメ案件に関わりたいデザイナー」。

Miu マーケター

ドイツでWEBマーケティングしています。

しんのき エンジニア

新しい技術が好きなWebエンジニアです。 元々インフラやPHPをやっていたのですが、最近はReact NativeとFirebaseを使って頑張ってます。

yamakawa

やまかわたかし デザイナー

フロントエンドデザイナー。デザイン・HTML/CSSマークアップ・JSアニメーション実装を担当しています。

furuya エンジニア

サーバーサイド、フロントエンド、Unityと色々手を出してる雑食系エンジニア。ReactNativeが最近のマイブーム。

Sayaka Osanai デザイナー

Sketchだいすきプロダクトデザイナー。シンプルだけどちょっとかわいいデザインが得意。 好きな食べものは生ハムとお寿司とカレーです。

はらた

はらた エンジニア

サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

うえまつゆい エンジニア

サーバーサイドエンジニアからフロントエンドエンジニアになりました。主にReact Nativeでのアプリ開発をしています。

CONTACT PAGE TOP