2018年12月20日
プログラミング
GASでGoogleフォームの投稿をSlackに通知する方法(前編)


はじめに
新しい技術にチャレンジし続ける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つのフィールドがあるフォームを作成しました。
スクリプトを書いて実行してみる
フォームの内容を取得したりslack通知を送るスクリプトを書く前に、簡単なスクリプトを書いて実行してみましょう。
GASのエディタでスクリプトを書く
先ほど作成したGoogle フォームの右上のボタンをクリックして、「スクリプトエディタ」を選択します。
そうすると、以下のような画面になりました。
ここにJavaScriptでスクリプトを書いていきます。
POINT!!
Googleに複数アカウントでログインしている場合、GASのスクリプトエディタを開こうとすると、「現在、ファイルを開くことができません。」とエラーが出てしまいます。
この場合は、フォームを作成したGoogleアカウントをデフォルトアカウントにするか、ほかにログインしているアカウントをすべてログアウトすると解決できます。
(私はすべてのアカウントをログアウトすると面倒なので、GASを使うときはシークレットブラウザで作業しています)
まずは、簡単なスクリプトを書いて実行してみましょう!
下記のコードをコピーして、先程のGASのエディタにペーストしてください。
function myFunction() {
var message = 'Hello world!';
Logger.log(message);
}
「Hello world!」という文字列をログに出力するスクリプトです。
GAS では、 Logger.log()
という関数でログを出力することができます。
スクリプトを作成するときにたくさん使うことになるので、覚えておきましょう。
スクリプトを実行してログを確認する
それでは早速スクリプトを実行してみます。
エディタ上部の再生ボタンのような部分をクリックすると、スクリプトが実行されます。
「関数 myFunction を実行中」という文字が画面の上部に表示されたと思います。
その表示が消えたら、ログを確認してみましょう。
正常に動作していれば、「Hello world!」と出力されているはずです。
エディタ上部の「表示」から「ログ」を選択します。
正しくログが表示されていました!
まとめ
今回はGASでできることや、実際にGASで簡単なスクリプトを実行する方法をご紹介しました。
後編では、作成したGoogleフォームに投稿された内容をslackに通知する部分の実装をしていきます!
Google Apps Scriptのお仕事に関するご相談
Bageleeの運営会社、palanではGoogle Apps Scriptに関するお仕事のご相談を無料で承っております。
zoomなどのオンラインミーティング、お電話、貴社への訪問、いずれも可能です。
ぜひお気軽にご相談ください。
この記事は
参考になりましたか?
5
5
関連記事
簡単に自分で作れるWebAR
「palanAR」はオンラインで簡単に作れるWebAR作成ツールです。WebARとはアプリを使用せずに、Webサイト上でARを体験できる新しい技術です。
palanARへ
palanでは一緒に働く仲間を募集しています
正社員や業務委託、アルバイトやインターンなど雇用形態にこだわらず、
ベテランの方から業界未経験の方まで様々なかたのお力をお借りしたいと考えております。
運営メンバー

Eishi Saito 総務
SIerやスタートアップ、フリーランスを経て2016年11月にpalan(旧eishis)を設立。 マーケター・ディレクター・エンジニアなど何でも屋。 COBOLからReactまで色んなことやります。
sasakki デザイナー
アメリカの大学を卒業後、日本、シンガポールでデザイナーとして活動。

やまかわたかし デザイナー
フロントエンドデザイナー。デザインからHTML / CSS、JSの実装を担当しています。最近はReactやReact Nativeをよく触っています。
Sayaka Osanai デザイナー
Sketchだいすきプロダクトデザイナー。シンプルだけどちょっとかわいいデザインが得意。 好きな食べものは生ハムとお寿司とカレーです。

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

こぼり ともろう エンジニア
サーバーサイドエンジニア。SIerを経て2019年7月に入社。日々学習しながらRuby on Railsを使った開発を行っています。

ささい エンジニア
フロントエンドエンジニア WebGLとReactが強みと言えるように頑張ってます。

Damien
WebAR/VRの企画・開発をやっています。森に住んでいます。

ゲスト bagelee

かっきー

まりな

suzuki
miyagi

ogawa
雑食デザイナー。UI/UXデザインやコーディング、時々フロントエンドやってます。最近はARも。

いわもと
デザイナーをしています。 好きな食べ物はラーメンです。

taishi kobari
フロントエンドの開発を主に担当してます。Blitz.js好きです。

kubota shogo
サーバーサイドエンジニア。Ruby on Railsを使った開発を行いつつ月500kmほど走っています!
nishi tomoya

aihara
グラフィックデザイナーから、フロントエンドエンジニアになりました。最近はWebAR/VRの開発や、Blender、Unityを触っています。モノづくりとワンコが好きです。
nagao
SIerを経てアプリのエンジニアに。xR業界に興味があり、unityを使って開発をしたりしています。

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

sugimoto
asama
ando
iwasawa ayane

oshimo
異業界からやってきたデザイナー。 palanARのUIをメインに担当してます。 これからたくさん吸収していきます!