API連携

Google Forms連携のサンプル

いつもお世話になっております。カスタマーサクセス部の橋本です。
APIを使ってどんなことができますか?連携できますか?といった
ご相談をいただく機会がございますので、サンプルでご紹介させていただきます。

 

本記事では、以下を目的としてご案内させていただきます。

・API利用した連携の全体像やイメージをご理解いただくこと。
・API利用した連携の難易度をご理解いただくこと。
・自動化/連携を行うための開発ツールが別途必要であること。

 

なお、連携先や開発ツールの仕様変更により正しく動作出来ない可能性があることもご理解いただき、合わせて、連携先や開発ツールの操作についてはサポート範囲外となりますので、お取引のあるSi業者様などへご相談をお願いいたします。

 

[サンプルの概要]
1. Googleフォームに回答を送信
2. Google Apps Script(以下GAS)でフォームの回答を受け取り、AppSuiteのAPIへアクセス
3. AppSuiteのアプリケーションにデータが追加される

 

Google フォームから Google Apps Script(GAS)を経由して AppSuite へデータを自動追加するフロー図

 

[事前準備]

 

1.Googleアカウントを用意する
GoogleフォームおよびGASスクリプトを作成するためのアカウントを用意します。

 

2.AppSuiteのアクセスキーを用意する
AppSuiteのAPIを使用するため、アクセスキーが必要になります。
[個人設定>アクセスキー設定]から発行し、コピーしておいてください。
※使用するアプリケーションのデータ変更権を持つユーザーで発行してください。

 

desknet's NEOの個人設定メニューから「アクセスキー設定」を選択し、アクセスキーを発行・確認する手順の画面遷移図

 

[手順]
1. Googleフォームを用意する
2. アプリケーションを用意する
3. スクリプトを用意する
4. 動作確認を行う

 

 


1:Googleフォームを用意する


AppSuiteと連携させるGoogleフォームを用意します。

※すでに作成されたものでも構いません。
※本資料で用いるスクリプトは、グリッド系の質問形式に対応していません。
(詳しくは文末の「制限事項」をご覧ください。)

 

 


2:AppSuiteのアプリケーションを用意する


・Googleフォームから入力した回答を保存するアプリケーションを作成します。

・Googleフォームの各質問に対して、対応する部品を一つずつ作成します。

※すでに作成されたものでも構いません。

・部品名は、Googleフォームの質問文と同じ文言を指定してください。
また、部品タイプは、Googleフォームの質問形式と合わせてください。

 

Googleフォーム質問形式 AppSuite部品タイプ
記述式 文字(一行)
段落 文字(複数行)
ラジオボタン ラジオボタン
チェックボックス チェックボックス
プルダウン プルダウン
ファイルのアップロード 添付ファイル
均等目盛 ラジオボタン
選択式(グリッド) ※未対応
チェックボックス(グリッド) ※未対応
日付 日付
時刻 時刻

 

 

例)

Google フォームの「会社名」「問合せ内容」「製品区分」の各項目が、AppSuiteの各入力フィールドへ対応していることを示すマッピング図

 

「API設定」から、アプリケーション識別子を設定しコピーしておきます。

本サンプルでは、google_formとします。

 

 

AppSuiteのアプリ設定内、「オプション機能」カテゴリにある「API設定」メニューを強調した画面図

 

 

AppSuiteのAPI設定画面で、アプリケーション識別子(例:google_form)と部品識別子を確認する操作画面図

 

 


3:スクリプトを用意する


スクリプトとは、GASにおけるプロジェクトの単位です。
一つのスクリプトが一つのGoogleフォームに対応します。スクリプトの中にいくつかプログラムファイルを保存することもできます。
スクリプトは、Googleフォームごとに設定できます。

 

 

3-1 スクリプトを開く
Googleフォームの設定画面のメニューから、「スクリプトエディタ」を選択します。

 

Google フォームの右上にある「その他(3点リーダー)」メニューから、「スクリプト エディタ」を選択する操作手順の画面図

 

 

3-2 スクリプトプロパティを設定する
スクリプトプロパティとは、スクリプト内の環境変数のようなものです。
ソースコードにハードコーディングしたくない値などをkey-value形式で保存できます。

 

 

プロジェクトの設定画面を開きます。

 

Google Apps Script エディタの左サイドメニューから「プロジェクトの設定(歯車アイコン)」を選択する操作画面図

 

 

スクリプトプロパティの設定を開きます。

 

Google Apps Scriptのプロジェクト設定画面で、「スクリプト プロパティを追加」ボタンを選択する操作画面図

 

スクリプトプロパティの追加をクリックして、下記の通り3つ設定します。

 

「access_key」「app_id」「url」の各プロパティ名と値を入力し、「スクリプト プロパティを保存」ボタンを押す操作画面図

 

 

プロパティ
access_key AppSuiteのAPIを実行するユーザーのアクセスキー
app_id 「@」を先頭に付けたアプリケーション識別子
url モジュール「appsr.cgi」のURL
<例:クラウド版の場合>
https://xxxx.dn-cloud.com/cgi-bin/dneo/appsr.cgi
xxxxの箇所はお客様ごとのサブドメインになります。

 

 

3-3 コーディングする
プログラム画面を開きます。

 

Google Apps Script エディタの左サイドメニューから、コード編集画面を開くための「エディタ(カッコ記号のアイコン)」を選択する操作画面図

 

 

ファイルの右側にある[+]をクリックし、スクリプトを選択してください。

 

 

Google Apps Script エディタの「ファイル」横にある「+(プラス)」アイコンをクリックし、メニューから「スクリプト」を選択する操作画面図

 

 

以下のような画面が表示されますので、デフォルトで記載されている1行目から4行目を削減してください。

 

 

Google Apps Scriptのコード編集画面。左側にファイル一覧(無題.gs)、右側にコードエディタ(function myFunction() {})が表示されている初期状態の画面図

 

 

ここに必要なコードサンプルについては、下記のダウンロードボタンから入手をお願いいたします。
※アンケート回答後に、テキストファイルをダウンロードできます。

 

ダウンロード

 

ダウンロードされたテキストファイルを開き、コードサンプルをコピーしてスクリプト内に貼り付けしてください。
(貼り付けいただくと、199行目まで記載されます。)

 

 

Google Apps Script(GAS)のエディタ画面。Googleフォームの送信をトリガーにAppSuiteのAPIを実行し、レコードを追加するためのサンプルコードが表示されている様子。

 

 

貼り付けが完了しましたら、画面上部のボタンから保存してください。

 

 

Google Apps Scriptのエディタ画面。ツールバーにある「プロジェクトを保存」アイコン(フロッピーディスクのマーク)がオレンジ色の枠と矢印で強調されている様子。

 

 

3-4 トリガーを設定する
トリガーとは、保存したプログラムの自動実行設定です。

 

 

トリガー設定画面を開きます。

 

Google Apps Scriptの左サイドメニュー。「トリガー」メニューがオレンジ色の枠で囲まれ、選択されている状態を示す画像。

 

 

トリガーを追加をクリックします。

 

 

Google Apps Scriptのトリガー管理画面。画面右下にある青色の「トリガーを追加」ボタンがオレンジ色の枠で囲まれ、強調されている様子。

 

 

関数「onSubmit」を実行関数に選択し、イベントタイプに「フォームの送信」を選択し、保存してください。

 

 

Google Apps Scriptのトリガー追加画面。「実行する関数を選択」で「onSubmit」を、「イベントの種類を選択」で「フォーム送信時」をそれぞれ選択し、オレンジ色の枠で強調している様子。

 

 

3-5 デプロイする
右上のボタンから「デプロイ」「新しいデプロイ」を選択します。

 

 

Google Apps Scriptのトリガー一覧画面。画面右上の「デプロイ」ボタンをクリックして表示されるメニューの中から、「新しいデプロイ」がオレンジ色の枠と矢印で強調されている様子。

 

 

「ウェブアプリ」を選択し、デプロイします。
アクセスできるユーザーは、全員を選択し、デプロイをクリックしてください。

 

 

Google Apps Scriptの「新しいデプロイ」画面。「種類の選択」で「ウェブアプリ」を指定し、「アクセスできるユーザー」を「全員」に設定している様子。右下の「デプロイ」ボタンを含め、設定箇所がオレンジ色の枠と矢印で強調されている。

 

 

データへのアクセス許可を求められますので、
自分のアカウントを選択してGoogleフォームやGoogle Driveへのアクセスを許可します。

 

以下の画面が表示されれば完了です。

 

 

Google Apps Scriptのデプロイ完了画面。「デプロイを更新しました。」というメッセージとともに、発行された「デプロイ ID」と「ウェブアプリ URL」、およびそれぞれのコピーボタンが表示されている様子。

 

以上で設定は終了です。


4:動作確認を行う


Googleフォームに回答を入力して送信し、アプリケーションにデータが追加されることを確認してください。

 

 

GoogleフォームとAppSuiteの連携イメージ。左側の「連携テストフォーム」に入力された会社名や問合せ内容が、右側のAppSuiteの一覧画面および詳細画面へ自動的に登録されていることを示す比較画像。

 

 


制限事項


・ユーザー選択部品や組織選択部品に対応する質問形式がございません。
Googleフォームには、AppSuiteのユーザー選択部品や組織選択部品に対応する質問形式がございません。
ユーザーまたは組織のIDを入力させるなどして代替してください。

 

・Googleフォームのチェックボックスとラジオボタンの「その他」に対応しておりません。
AppSuiteのチェックボックスとラジオボタンには、Googleフォームにあるような「その他」の選択肢がございません。
対応したい場合、「その他」に入力された文章を保存するための部品を別途用意する必要がございます。

 

・グリッド系の質問タイプに対応しておりません。
AppSuiteには、Googleフォームにある「選択式(グリッド)」および「チェックボックス(グリッド)」がございません。
対応したい場合、チェックボックス部品またはラジオボタン部品を複数並べ、疑似的にグリッド部品を作成する必要がございます。
 


【関連資料紹介】
こちらの資料では、紙・メール・Excelでの業務処理を誰でも簡単にアプリ化し、業務のお悩みを解決するビフォーアフターなどをわかりやすくご紹介しています。

資料ダウンロードはこちら

資料「業務アプリ作成ツール AppSuiteのご紹介」をダウンロードする。

■本件に関するお問い合わせ
株式会社ネオジャパン カスタマーサクセス部
TEL:045-640-5921 Email:csuccess@desknets.com

WRITER
カスタマーサクセス部 橋本
WRITER
カスタマーサクセス部 橋本
2004年入社のプロパ社員。元営業の視点を生かし、 カスタマーサクセス部としてお客様の成功に情熱を注いでいます。 プライベートは野球一筋。学童野球のコーチとして子どもたちの成長に伴走。長男・次男も野球に打ち込み、週末は家族でグラウンドにいることが多い日々。仕事も野球も、チームの力を信じて全力で取り組むのが私のスタイルです。
2004年入社のプロパ社員。元営業の視点を生かし、 カスタマーサクセス部としてお客様の成功に情熱を注いでいます。 プライベートは野球一筋。学童野球のコーチとして子どもたちの成長に伴走。長男・次男も野球に打ち込み、週末は家族でグラウンドにいることが多い日々。仕事も野球も、チームの力を信じて全力で取り組むのが私のスタイルです。
  • X
  • facebook
  • Pocket
  • はてな