跳到正文

Measure Map Online 开发者专区

让访客在你的网站上测量,为客户创建项目,读取他们的测量数据,并在变化发生的瞬间收到通知。REST API 包含在 Open Guest 和 Enterprise 套餐中。

REST API

选择套餐

Open Guest 和 Enterprise 套餐可使用开发者页面。Open Guest 用于接收来自你网站的报价请求;Enterprise 用于运营团队,成员可通过 API 管理。

比较套餐

创建 API 密钥

在开发者页面中,为真实项目创建 Live 密钥,为开发和测试创建 Sandbox 密钥:沙盒项目相互独立,沙盒访客项目永远不会计费。每个密钥只授予它所需的权限,并将其限定在你的网站范围内。

关于 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 如何运作

从你自己的报价表单发起

若要替访客预填信息,你的服务器使用 live 密钥申请令牌,并把访客送到一个新的访客项目。密钥绝不会到达浏览器。

// 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 中已为你的账号准备好这段代码。每个访客项目都计入你的 Open Guest 用量。

Enterprise:从你自己的软件管理成员

在你自己的系统中创建组织成员,为他们分配项目,并让他们以已登录状态进入 Measure Map Online。

创建成员

可以在控制台中邀请成员,或通过 API 创建。每位成员占用一个席位,并获得你组织的默认角色。

POST /users/new

与你的记录关联

将每位成员的用户 ID(uid)与你数据库中的客户或员工一并保存,需要时读取其详细信息。

GET /users/{uid}

创建他们的项目

在成员的账号中创建项目,并把项目 ID 与你自己系统中的工作单一起保存。

POST /users/{uid}/projects/new

为他们登录

申请登录令牌,并带着它把成员送入应用,这样你就无需分发密码。不适用于 Admin 和 Manager,也不适用于 Sandbox 密钥。

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

iFrame API:网站上的实时地图

在你自己的网页或 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)