開発者のための Measure Map Online
ウェブサイトで訪問者に計測してもらい、顧客のプロジェクトを作成して計測値を読み取り、変更があればすぐに通知を受け取れます。REST API は Open Guest プランと Enterprise プランに含まれています。
REST API
プランを選ぶ
開発者ページは、Open Guest プランと Enterprise プランで利用できます。Open Guest はウェブサイトから見積もり依頼を受け付けるためのプランです。Enterprise はチームを運営するためのプランで、メンバーを API で管理できます。
プランを比較API キーを作成する
開発者ページで、実際のプロジェクト用に本番のキーを、開発とテスト用にサンドボックスのキーを作成します。サンドボックスのプロジェクトは本番とは分けて保管され、サンドボックスのゲストプロジェクトが課金されることはありません。各キーには必要なアクセス権だけを与え、使えるウェブサイトを自社のサイトに限定してください。
API キーについてすべてのリクエストでキーを送る
すべてのリクエストは https://api.measuremaponline.com/api/v2 に送り、キーは Authorization ヘッダーに入れます。データを変更できるキーは、サーバー側で保管してください。
curl https://api.measuremaponline.com/api/v2/projects/PROJECT_ID \
-H "Authorization: YOUR_API_KEY"
できること
| 領域 | ソフトウェアでできること | プラン |
|---|---|---|
| プロジェクトとフォルダ | 一覧表示、取得、作成、更新、削除。プロジェクトの計測値、コメント、.mmp ファイルの取得 | Open Guest、Enterprise |
| 製品 | 作業の価格付けに使う製品の取得、作成、更新、アーカイブ | Open Guest、Enterprise |
| ゲストプロジェクト | 訪問者の情報を入力済みのゲストプロジェクトを開始 | Open Guest |
| メンバー | 組織のメンバーの作成、取得、更新、削除と、メンバーのサインイン | Enterprise |
| 埋め込み | プロジェクトをライブの地図としてウェブサイトに表示 | Enterprise |
| Webhook | 何かが起きたときに、署名付きのメッセージをサーバーで受信 | Open Guest、Enterprise |
Open Guest:ウェブサイトで訪問者に計測してもらう
ウェブサイトの訪問者は、アカウントなしで自分の作業範囲を計測し、描きながら価格を確認して、見積もりの依頼を送れます。
しくみ
- ゲストリンクを、ボタンまたはページ内の地図としてウェブサイトに掲載します。
- 訪問者がリンクを開くと、登録不要で専用のプロジェクトが用意されます。
- 訪問者は芝生、屋根、車寄せを描き、描きながら価格を確認できます。
- 訪問者が見積もりを依頼を押し、名前、メールアドレス、電話番号を入力します。
- メールと通知が届き、訪問者のプロジェクトがアカウントに追加されます。
コード不要:開発者 > ゲストリンクから、ゲストリンク、またはそのボタンや地図のコードをコピーするだけです。
Open Guest のしくみ自社の見積もりフォームから
訪問者の情報をあらかじめ入力しておくには、サーバーが本番のキーでトークンを取得し、訪問者を新しいゲストプロジェクトに送ります。キーがブラウザーに渡ることはありません。
// Node.js 18+ with Express. Your API key stays on this server.
const express = require('express');
const app = express();
app.get('/start-measuring', async (req, res) => {
// A token lets one visitor start one project in your account.
const reply = await fetch('https://api.measuremaponline.com/api/v2/auth/token', {
method: 'POST',
headers: {'Authorization': process.env.MMO_API_KEY, 'Content-Type': 'application/json'},
body: '{}',
});
if (!reply.ok) {
return res.sendStatus(502);
}
const {token} = await reply.json();
const name = String(req.query.name || '');
const email = String(req.query.email || '');
// URLSearchParams encodes every value: "Smith & Sons" arrives whole.
const params = new URLSearchParams({
token,
name, // the project's name in your account
description: email, // any text you want to search by later
guest_name: name, // shown in the email you receive
guest_email: email,
// folder_id: 'FOLDER_ID', // optional: the folder new projects go into
});
res.redirect('https://app.measuremaponline.com/app/projects/guest/new?' + params.toString());
});
app.listen(3000);
// On your page: call this from the button on your quote form.
function startMeasuring(name, email) {
const params = new URLSearchParams({name, email});
window.open('/start-measuring?' + params.toString(), '_blank', 'noopener');
}
このコードは、開発者ページのゲストリンク > Open Guest APIに、アカウント用に用意されています。ゲストプロジェクトは 1 件ごとに Open Guest の利用量に数えられます。
Enterprise:自社のソフトウェアからメンバーを管理
自社のシステムから組織のメンバーを作成し、プロジェクトを割り当て、サインイン済みの状態で Measure Map Online に送り込めます。
自社のデータと結び付ける
各メンバーのユーザー ID(uid)を、データベースの顧客や従業員と結び付けて保存しておけば、必要なときにメンバーの情報を取得できます。
GET /users/{uid}メンバーのプロジェクトを作成する
メンバーのアカウントにプロジェクトを作成し、その ID を自社システムの案件と一緒に保存します。
POST /users/{uid}/projects/newサインインさせる
サインイン用トークンを取得し、それを使ってメンバーをアプリに送ります。パスワードを配る必要はありません。管理者とマネージャー、およびサンドボックスのキーでは利用できません。
POST /auth/{uid}/login
https://app.measuremaponline.com/dashboard?sit=TOKENiFrame API:ウェブサイトにライブの地図を
計測値の入ったプロジェクトの地図を、自社の Web ページや CRM に表示できます。訪問者はアカウントなしで地図を自由に動かせます。単位、地図の種類、ライトまたはダークの外観を選べます。
コードは開発者ページで作成できます。プロジェクトを選び、ライブプレビューを確認してコピーするだけです。埋め込みは Enterprise プランの機能です。Open Guest では、代わりにゲストリンクを埋め込んでください。
iFrame API ガイド<iframe
src="https://app.measuremaponline.com/iframe_api?pid=PROJECT_ID&key=YOUR_API_KEY&ms=metric&maptype=satellite&theme=auto"
width="100%" height="500" style="border: 0"
title="作業の計測値">
</iframe>
ms: metricまたはimperial
· maptype: satellite、map、hybrid、またはterrain
· theme: auto、light、またはdark
Webhook:変更を通知で受け取る
開発者ページでサーバーのアドレスを追加し、受け取るイベントを選びます。各イベントは JSON 本文付きの POST として届きます。X-MMO-Signature ヘッダーに署名が入っているので、当社から送られたものかを確認できます。
Webhook は Open Guest プランと Enterprise プランの機能です。
Webhook ガイド| イベント | 送信されるタイミング |
|---|---|
project.created | プロジェクトが作成されたとき(アプリ、API、埋め込みのいずれからでも) |
project.deleted | プロジェクトが完全に削除されたとき(ゴミ箱への移動は対象外) |
project.comment.added | プロジェクトにコメントが付いたとき |
guest.project.created | 見積もりフォーム経由など、メールアドレスがわかっている訪問者がゲストプロジェクトを開始したとき(Open Guest) |
guest.measurement.completed | 訪問者が計測を終え、連絡先を残したとき(Open Guest) |
budget.warning_reached,budget.limit_reached | Open Guest の支出が、警告額または上限に達したとき |
enterprise.user.created | シングルサインオン経由も含め、組織にシートが追加されたとき(Enterprise) |