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:网站访客自己测量项目
网站访客无需账号即可测量自己的项目,边画边看到价格,并向你发送报价请求。
运作方式
- 你把访客链接放在网站上,可以是按钮,也可以是嵌入页面的地图。
- 访客打开链接,或在你页面的地图上找到自己的地址,就会在新标签页中获得属于自己的项目,无需注册。
- 他们绘制自己的草坪、屋顶或车道,并随时看到你的价格。
- 他们点击申请报价,留下姓名、邮箱和电话。
- 你会收到邮件和通知,他们的项目则保存在你的账号中。
无需编写代码:在 开发者 > 访客链接 中复制你的访客链接,或对应的按钮或地图代码。
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。
与你的记录关联
将每位成员的用户 ID(uid)与你数据库中的客户或员工一并保存,需要时读取其详细信息。
GET /users/{uid}创建他们的项目
在成员的账号中创建项目,并把项目 ID 与你自己系统中的工作单一起保存。
POST /users/{uid}/projects/new为他们登录
申请登录令牌,并带着它把成员送入应用,这样你就无需分发密码。不适用于 Admin 和 Manager,也不适用于 Sandbox 密钥。
POST /auth/{uid}/login
https://app.measuremaponline.com/dashboard?sit=TOKENiFrame 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) |