本文へスキップ

開発者のための 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:ウェブサイトで訪問者に計測してもらう

ウェブサイトの訪問者は、アカウントなしで自分の作業範囲を計測し、描きながら価格を確認して、見積もりの依頼を送れます。

しくみ

  1. ゲストリンクを、ボタンまたはページ内の地図としてウェブサイトに掲載します。
  2. 訪問者がリンクを開くと、登録不要で専用のプロジェクトが用意されます。
  3. 訪問者は芝生、屋根、車寄せを描き、描きながら価格を確認できます。
  4. 訪問者が見積もりを依頼を押し、名前、メールアドレス、電話番号を入力します。
  5. メールと通知が届き、訪問者のプロジェクトがアカウントに追加されます。

コード不要:開発者 > ゲストリンクから、ゲストリンク、またはそのボタンや地図のコードをコピーするだけです。

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 に送り込めます。

メンバーを作成する

ダッシュボードから招待するか、API で作成します。メンバーはそれぞれシートを 1 つ使用し、組織の既定の役割が割り当てられます。

POST /users/new

自社のデータと結び付ける

各メンバーのユーザー ID(uid)を、データベースの顧客や従業員と結び付けて保存しておけば、必要なときにメンバーの情報を取得できます。

GET /users/{uid}

メンバーのプロジェクトを作成する

メンバーのアカウントにプロジェクトを作成し、その ID を自社システムの案件と一緒に保存します。

POST /users/{uid}/projects/new

サインインさせる

サインイン用トークンを取得し、それを使ってメンバーをアプリに送ります。パスワードを配る必要はありません。管理者とマネージャー、およびサンドボックスのキーでは利用できません。

POST /auth/{uid}/login
https://app.measuremaponline.com/dashboard?sit=TOKEN

iFrame 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)