PREMIUM PLUGIN

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

スプレッドシート連携 for kintone

スプレッドシート連携は、はじめから使える KIZUNA Works の接続と、お客様ご自身の Google Cloud のどちらでも動きます。利用者が多いアプリや、社内規程で自社の管理下に置きたい場合は自社の Google Cloud をおすすめします。このページはその準備手順です。作業は 15 分ほど、費用はかかりません。

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

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

01

利用枠が自社専用になる

Google の利用枠(クォータ)は Cloud プロジェクト単位で決まります。KIZUNA Works の接続は当社のプロジェクトを全ご利用者で共有するため、自動同期を頻繁に回す運用では枠を分け合うことになります。自社のプロジェクトなら、Cloud コンソールで読み取りの上限の引き上げも申請できます。

02

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

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

03

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

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

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

用意するもの

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

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

設定手順

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

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

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

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

2API を 3 つ有効にする

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

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

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

Google Drive API も必須です。[同期]を押したときや 1 日 1 回の全件照合のときに、スプレッドシートがゴミ箱に入っていないかを確かめるために使います(ゴミ箱の中のファイルも Sheets API では読み書きできてしまうため、気づかないまま同期し続けるのを防ぎます)。設定画面の「接続中のアカウント」の表示にも使います。
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 つだけで、ほかは追加しません。spreadsheets や spreadsheets.readonly は追加しないでください——これらは「すべてのスプレッドシートを読み書きできる」制限付きスコープで、Google のセキュリティ評価(CASA)の対象になります。本プラグインは選ばれたファイルだけを読み書きするので drive.file で足ります。同意画面に出る内容と実際に要求する内容を揃えておくと、接続時に「確認されていないアプリ」の警告が出るのを防げます。

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

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

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

フォーム連携・ドライブ連携とはパスが違います。スプレッドシート連携は /sheets-sync/callback.html です(ほかの製品もお使いの場合は、同じクライアントに製品ごとの URI をすべて登録して構いません)。

これは 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と有効にする 3 つの 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/sheets-sync/callback.html と完全一致で登録してください。フォーム連携の /form-connect/・ドライブ連携の /drive-connect/ とは別のパスです
接続中のアカウントのメールアドレスが表示されないGoogle Drive API が有効になっていません。ゴミ箱の確認にも使うため、有効にしてください
接続はできるが、シートの見出しを読めない・同期でエラーになるGoogle Sheets API が有効になっているか確認してください。あわせて、接続したアカウントがそのスプレッドシートを編集できるかもご確認ください
しばらく使っていなかったら接続が切れたGoogle のリフレッシュトークンは 6 か月間まったく使われないと失効します。設定画面から接続し直してください。日常的に同期していれば起きません

よくある質問

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

スプレッドシート連携 for kintone

Google スプレッドシートと kintone アプリを双方向に同期するプラグインです。無料プランでも 1 シート・[同期]ボタンでの同期まで利用でき、自動同期・振り分け・見出しからフィールドを作成などはプレミアム年間サポーター(税込 ¥16,500/年)に含まれます。

製品ページを見る →