位置情報強制登録プラグイン(無料)
レコードの追加・更新を保存するタイミングで、端末のブラウザ位置情報(緯度・経度)を自動取得し、
指定した数値フィールドへ書き込むプラグインです。出退勤の打刻や現場作業の証跡(「本当にその場所で
操作したか」)を残す用途に使えます。緯度・経度フィールドはフォーム上で常に非表示になり、編集画面・
レコード一覧のインライン編集では直接編集もできなくなります。地図表示をONにすると、登録済みの
位置情報をGoogleマップにピン表示できます。
入力制御
#位置情報取得
#出退勤
ダウンロード(v1)
執筆者: 羽鳥達郎(合同会社Pons) /
kintoneアプリデザインスペシャリスト・基本情報技術者・cybozuオフィシャルパートナー
※本サイトで配布するプラグインは、サイボウズ株式会社のオフィシャルプロダクトではありません。
こんな方におすすめ
- kintoneで出退勤の打刻に位置情報の証跡を残したい
- 現場作業の報告レコードに「実際にその場所にいたか」の裏付けを残したい
- 「kintone 位置情報 自動取得」「kintone GPS 打刻」を探している
- 緯度・経度をフォーム上で直接見せず、手入力もさせたくない
ユースケース
出勤・退勤レコードを保存するたびに、その瞬間の緯度・経度が自動で記録されます。緯度・経度フィールドはフォーム上で常に非表示になるため、打刻者が値を意識したり手を加えたりする必要はありません。位置情報の取得に失敗した場合でも打刻自体はブロックされず、その旨がその場で通知されます。
「地図を表示する」を設定すると、レコード詳細画面などのヘッダーにGoogleマップが埋め込まれ、登録済みの位置情報にピンが立ちます。管理者は現場から送られた報告が実際にどこで作成されたかを地図上で確認できます。
セットアップ手順
- アプリのフォーム編集で、緯度・経度を保存する数値フィールドを2つ用意する(既存の数値フィールドを流用してもよい)。
- プラグインをアプリに追加し、設定画面を開く。
- 「緯度を保存するフィールド」「経度を保存するフィールド」を選び、必要であれば「地図を表示する」にチェックを入れて保存する。
- 保存後、アプリを更新する(kintoneのアプリ設定は保存しただけでは反映されず、更新〈デプロイ〉して初めてレコード画面に反映されます)。
緯度・経度フィールドは追加・編集・詳細画面で常に非表示になり、編集画面・レコード一覧のインライン編集では編集もできなくなります。これはJavaScript APIによる画面表示上の制限であり、REST API経由の更新やアクセス権による制御ではないため、位置情報を証跡として運用する場合はアプリの「レコードの変更履歴(リビジョン)」を有効にすることをおすすめします。位置情報の取得に失敗した場合でも、レコードの登録・更新自体はブロックされず、その旨がアラートで通知されます。
セキュリティレビュー結果サマリ
kintoneセキュアコーディングガイドラインに沿って実装時にチェックしています。特に重要な点は次のとおりです。
- 位置情報の取得はブラウザ標準のGeolocation APIのみで行い、kintoneへのREST通信は一切発生しません。地図表示もAPIキー不要の公開埋め込みURLをiframeに設定するだけで、外部への
fetch/XMLHttpRequest通信は一切行いません。外部ライブラリも使用していません。
- 地図の埋め込みURLは、緯度・経度フィールドの値をそのまま連結せず、数値として解釈できて有効範囲内(緯度-90〜90・経度-180〜180)であることを確認したうえで組み立てており、任意の文字列がURLに混入する余地をコード上排除しています。
- 設定画面のフィールド一覧・エラーメッセージの描画は
innerHTMLではなくtextContentのみを使用しており、DOMへ構造として解釈されません。
- 位置情報の取得が一時的に失敗しても(電波状況等)、最大3回まで自動的に再試行してから諦めます。それでも取得に失敗した場合はレコードの登録・更新自体を継続する設計です(証跡が取れない場合でも業務を止めないための仕様上の判断)。取得失敗はアラートで必ず利用者に通知したうえで、緯度・経度フィールドは空のまま保存されます。
- 緯度・経度フィールドの非表示化・編集不可化はJavaScript APIによるUIレベルの制御であり、「不正な書き換えを技術的に防ぐ」機能ではありません。証跡として運用する場合はアプリの変更履歴(リビジョン)を有効にすることを設定画面上で案内しています。
詳細な確認項目・確認日は下記GitHubのチェックリストに全項目を掲載しています。
→ security-checklist.md をGitHubで見る
API実行数について
このプラグインは、位置情報の取得にブラウザ標準のGeolocation APIのみを使用しており、kintoneのAPIは実行しません。地図表示もGoogleマップの公開埋め込みURLをiframeで表示するだけで、追加のAPI呼び出しは発生しません。
あわせて検討したいkintone関連サービス
by 合同会社Pons kintoneオフィシャルパートナー