본문으로 건너뛰기

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
웹훅이벤트가 발생하면 서명된 메시지를 서버로 수신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

예시: 내 페이지 안의 프로젝트

웹훅: 변경 사항 알림

개발자 페이지에 서버 주소를 추가하고 원하는 이벤트를 선택하세요. 각 이벤트는 JSON 본문을 담은 POST로 도착하며, X-MMO-Signature 헤더에 서명이 포함되어 우리가 보낸 것인지 확인할 수 있습니다.

웹훅은 Open Guest 및 Enterprise 요금제에 포함됩니다.

웹훅 가이드
이벤트 전송 시점
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)