PREMIUM PLUGIN

自社の Google Cloud で使う ― 設定手順

フォーム連携 for kintone

フォーム連携は、はじめから使える KIZUNA Works の接続と、お客様ご自身の Google Cloud のどちらでも動きます。本番運用では自社の Google Cloud をおすすめします。このページはその準備手順です。作業は 15 分ほど、費用はかかりません。

なぜ自社の Google Cloud をすすめるのか

どちらを選んでも機能は同じで、回答の流れも変わりません(利用者のブラウザが回答スプレッドシートを直接読み、そのまま kintone へ登録します)。違うのは「誰の Google 利用枠を使うか」です。

01

利用枠が自社専用になる

Google の利用枠(クォータ)は Cloud プロジェクト単位で決まります。KIZUNA Works の接続は当社のプロジェクトを全ご利用者で共有するため、自動取り込みを何本も回す運用では枠を分け合うことになります。

02

第三者の都合で止まらない

当社の接続を使う場合、当社の OAuth クライアントに何かあれば影響を受けます。自社のプロジェクトなら、止まる・止めるの判断も自社で握れます。

03

利用状況を自社で確認できる

API の利用状況を自社の Cloud コンソールで確認できます。情報システム部門の管理下に置きたい場合に向いています。

まず動かして試したいだけなら、KIZUNA Works の接続のままで構いません。あとから設定画面で切り替えられます(切り替え後は回答シートを選び直して接続し直します)。

用意するもの

  • Google アカウント(Google Workspace を推奨。個人の Google アカウントでも可)。回答スプレッドシートを開けるアカウントで接続してください。
  • kintone のアプリ管理権限(設定画面を開くため)
  • 費用は不要です。Google Sheets API と Google Picker API は、請求先アカウントを紐づけなくても使えます

所要時間の目安:15 分。作業は最初の 1 回だけで、そのあとは通常の利用に切り替わります。

設定手順

1Google Cloud プロジェクトを作る

下記を開き、プロジェクトを 1 つ作ります。名前は kintone-form-connect のように、分かるものであれば何でも構いません。

https://console.cloud.google.com/projectcreate

Google Workspace をお使いの場合は、組織に所属したプロジェクトとして作ってください。次の手順 3 で「内部」を選べるようになり、手続きが一段簡単になります。

2API を 2 つ有効にする

画面右上のプロジェクト名が、いま作ったプロジェクトになっているか必ず確認してから、次の 2 つを「有効にする」で有効化します。

Google Sheets API https://console.cloud.google.com/apis/library/sheets.googleapis.com Google Picker API https://console.cloud.google.com/apis/library/picker.googleapis.com

Picker API を忘れないでください。回答スプレッドシートを選ぶ画面がこれを使います。有効になっていないと、設定画面の[スプレッドシートを選ぶ]を押しても何も開きません。

Google Drive API は任意です。有効にすると、設定画面の「接続中のアカウント」にメールアドレスが表示されます(表示のためだけに drive/v3/about を読みます)。有効にしなくても取り込みは問題なく動き、アカウント名の表示が省かれるだけです。
3OAuth 同意画面を用意する

「Google Auth Platform」を開き、案内にしたがってアプリの情報を登録します。

https://console.cloud.google.com/auth/overview
  • アプリ名:接続するときの画面に出ます。kintone フォーム連携 のような名前で構いません
  • ユーザーサポートメール/デベロッパーの連絡先:自社のアドレス

Google Workspace をお使いの場合 → ユーザーの種類は「内部」

自社の組織のアカウントだけが接続できる設定です。審査は要りません。接続するのはアプリ管理者ご自身の 1 アカウントだけなので、これで足ります。

個人の Google アカウントの場合 → 「外部」+「本番環境に公開」

「外部」しか選べません。登録後、公開ステータスを「本番環境」に切り替えてくださいテストのままにすると、接続が 7 日で切れます(Google の仕様で、テスト中のトークンは 7 日で失効します)。自動取り込みは接続が切れると止まるため、本番運用では必ず切り替えてください。

本プラグインが求めるアクセス権は drive.file だけで、これは Google が非機密に分類しているものです。本番環境に切り替えるだけで、Google の審査を受ける必要はありません。

データアクセス(スコープ)には https://www.googleapis.com/auth/drive.file を追加してください。これ 1 つだけで、ほかは追加しません。spreadsheetsspreadsheets.readonly は追加しないでください——これらは「すべてのスプレッドシートを読める」制限付きスコープで、Google のセキュリティ評価(CASA)の対象になります。本プラグインは選ばれた 1 枚だけを読むので drive.file で足ります。同意画面に出る内容と実際に要求する内容を揃えておくと、接続時に「確認されていないアプリ」の警告が出るのを防げます。

4OAuth クライアント ID を作る

「クライアント」→「クライアントを作成」と進みます。

https://console.cloud.google.com/auth/clients
  • アプリケーションの種類:ウェブ アプリケーション
  • 名前kintone-form-connect など、任意の名前で構いません
  • 承認済みの JavaScript 生成元:登録不要
  • 承認済みのリダイレクト URI:次の 1 本だけを登録します
https://kizuna-works.jp/form-connect/callback.html

ドライブ連携とはパスが違います。フォーム連携は /form-connect/callback.html です(両方をお使いの場合は、同じクライアントに 2 本とも登録しても構いません)。

これは Google からの認可コードを受け取るための当社の静的なページです。サーバー処理はなく、受け取った値をブラウザ内で設定画面へ渡すだけで、保存も転送もしません。Google はリダイレクト URI を完全一致でしか認めず、ワイルドカードも使えないため、お客様の kintone サブドメインを個別に登録する方式が成り立たないので、この 1 枚に集約しています。

作成後に表示されるクライアント IDクライアント シークレットを控えてください(シークレットはこの画面を閉じると再表示できないことがあります)。

5API キーを作る(シート選択用)

「認証情報」→「認証情報を作成」→「API キー」で作ります。

https://console.cloud.google.com/apis/credentials

作成したキーを開き、次のとおり設定してください。

  • API の制限「Google Picker API」だけを選ぶ(必ず設定してください)
  • アプリケーションの制限「なし」のままにする
HTTP リファラー制限は付けないでください。付けるとスプレッドシートの選択画面が「API デベロッパー キーが無効です。」となって開きません。選択画面は Google 側(docs.google.com)で読み込まれるため、kintone のドメインでは照合が通らないためです。
制限を「Picker API のみ」にしてあれば、仮にキーが読み取られてもできるのはファイル選択の画面を出すことだけで、スプレッドシートの中身には一切触れられません(読み取りには別途 OAuth の認可が必要です)。
6プラグインに登録して接続する

kintone のアプリ設定 → プラグイン →「フォーム連携 for kintone」の歯車 →「① Google 接続」を開きます。

プラグイン設定画面の「① Google 接続」で接続方式に「自社の Google Cloud を使う」を選んだ状態。クライアントID・クライアントシークレット・API キーの入力欄と、承認済みリダイレクトURIと有効化する API を案内する注意書きが表示されている
接続方式を切り替えると、入力欄が 3 つ出ます。画面内にもリダイレクト URI と有効にする API が書いてあります。
  1. 接続方式で 「自社の Google Cloud を使う」 を選ぶ
  2. クライアント IDクライアント シークレットAPI キー を入力する
  3. [Google に接続]を押し、アカウントを選んでアクセスを許可する
  4. 「接続中のアカウント」が表示されれば完了

3 つとも同じプロジェクトのものにしてください。クライアント ID と別プロジェクトの API キーを混ぜると、スプレッドシートの選択画面が開きません(Google 側でプロジェクトの一致を見ています)。

あとは「② 連携フォーム」で回答スプレッドシートを選び、列とフィールドの対応づけを確認して保存し、アプリを更新すれば通常どおり使えます。

つまずきやすいところ

症状原因と対処
[スプレッドシートを選ぶ]を押しても何も開かないGoogle Picker API が有効になっていない/API キーに HTTP リファラー制限が付いている/クライアント ID と API キーが別プロジェクト
「API デベロッパー キーが無効です。」と出るAPI キーの HTTP リファラー制限を外してください(アプリケーションの制限=なし)
接続が 7 日で切れるOAuth 同意画面が「テスト」のままです。「本番環境に公開」に切り替えてください
接続時に「アクセスをブロックしました」「確認されていないアプリ」と出る①OAuth 同意画面が「テスト」のままです。「本番環境に公開」に切り替えてから接続してください(テストのまま使う場合は、自分のアカウントをテストユーザーに追加します)/②ユーザーの種類が「内部」で、組織外のアカウントで接続しようとしています。組織内のアカウントで接続してください
リダイレクト URI が一致しないと言われる末尾まで含めて https://kizuna-works.jp/form-connect/callback.html と完全一致で登録してください。ドライブ連携の /drive-connect/ とは別のパスです
接続中のアカウントのメールアドレスが表示されないGoogle Drive API が有効になっていません。表示だけの用途なので、有効にしなくても取り込みは動きます
接続はできるが、シートの見出しを読めない・取り込みでエラーになるGoogle Sheets API が有効になっているか確認してください。あわせて、接続したアカウントがその回答スプレッドシートを開けるかもご確認ください
しばらく使っていなかったら接続が切れたGoogle のリフレッシュトークンは 6 か月間まったく使われないと失効します。設定画面から接続し直してください。日常的に取り込んでいれば起きません

よくある質問

費用はかかりますか?
かかりません。Google Sheets API と Google Picker API は請求先アカウントを紐づけなくても利用でき、通常の利用範囲では料金が発生しません。プロジェクトに請求先アカウントを紐づけないままにしておけば、想定外の請求が発生する経路そのものがありません。
Google の審査(アプリの確認)は必要ですか?
通常は不要です。本プラグインが求めるアクセス権は drive.file だけで、Google が非機密に分類しているものです。Google Workspace で「内部」を選んだ場合は審査という手続き自体がありません。「外部」の場合も、本番環境に公開するだけで使えます。なお、スコープに spreadsheets や spreadsheets.readonly を追加すると制限付きスコープとなり、CASA というセキュリティ評価の対象になります。追加しないでください。
ドライブ連携と同じ Google Cloud プロジェクトを使えますか?
使えます。1 つのプロジェクトで作ったクライアント ID・シークレット・API キーを、両方の製品でお使いいただけます。その場合は、承認済みのリダイレクト URI に /drive-connect/callback.html と /form-connect/callback.html の 2 本を登録し、有効にする API に Google Drive API・Google Sheets API・Google Picker API を揃えてください。
リダイレクト URI が KIZUNA Works のページなのはなぜですか?
Google は認可後の戻り先を完全一致でしか認めず、ワイルドカードも使えないためです。お客様の kintone サブドメインを個別に登録していく方式は現実的でないため、当社が用意した静的なページ 1 枚に集約しています。このページはサーバー処理を持たず、受け取った認可コードをブラウザ内で設定画面へ渡すだけで、保存も転送もしません。回答の内容がここを通ることもありません。
あとから KIZUNA Works の接続に戻せますか?
戻せます。設定画面の「① Google 接続」で接続方式を切り替え、あらためて接続してください。切り替え後は回答スプレッドシートを選び直す必要があります(ファイルの選択は接続したアカウントの権限で行うためです)。すでに取り込んだレコードはそのまま残り、同一性は回答IDで判定するため、選び直しても二重登録にはなりません。
複数のアプリで使う場合、プロジェクトも複数必要ですか?
必要ありません。1 つの Cloud プロジェクトで作ったクライアント ID・シークレット・API キーを、複数のアプリの設定画面にそれぞれ入力してお使いいただけます。

フォーム連携 for kintone

Google フォームの回答を、回答スプレッドシート経由で kintone のレコードにするプラグインです。無料プランでも連携フォーム 1 本・ボタンからの取り込みまで利用でき、自動取り込みや複数フォームの集約はプレミアム年間サポーター(税込 ¥16,500/年)に含まれます。

製品ページを見る →