콘텐츠로 건너뛰기

지오존 API

getNearestZone

Anchor link to

SDK 내부에서 호출됩니다. 가장 가까운 지오존의 파라미터와 거리를 검색합니다. 또한 지오 푸시 알림을 위해 기기 위치를 기록합니다.

POST https://api.pushwoosh.com/json/1.3/getNearestZone

요청 본문 파라미터

Anchor link to
파라미터유형
필수설명
applicationstringPushwoosh 애플리케이션 코드
hwidstring/registerDevice 요청에 사용된 하드웨어 기기 ID입니다.
latstring기기의 위도입니다.
lngstring기기의 경도입니다.

요청 예시

Anchor link to
{
"request": {
"application": "APPLICATION_CODE",
"hwid": "HWID",
"lat": 10.12345,
"lng": 28.12345
}
}

PHP 예시

Anchor link to
// http://gomoob.github.io/php-pushwoosh/get-nearest-zone.html 을 참조하세요
use Gomoob\Pushwoosh\Model\Request\GetNearestZoneRequest;
// 요청 인스턴스를 생성합니다
$request = GetNearestZoneRequest::create()
->setHwid('HWID')
->setLat(10.12345)
->setLng(28.12345);
// '/getNearestZone' 웹 서비스를 호출합니다
$response = $pushwoosh->getNearestZone($request);
if ($response->isOk()) {
print '존 이름 : ' . $response->getResponse()->getName();
print '위도 : ' . $response->getResponse()->getLat();
print '경도 : ' . $response->getResponse()->getLng();
print '범위 : ' . $response->getResponse()->getRange();
print '거리 : ' . $response->getResponse()->getDistance();
} else {
print '죄송합니다, 작업에 실패했습니다 :-(';
print '상태 코드 : ' . $response->getStatusCode();
print '상태 메시지 : ' . $response->getStatusMessage();
}

addGeoZone

Anchor link to

특정 앱에 지오존을 추가합니다.

POST https://api.pushwoosh.com/json/1.3/addGeoZone

요청 본문 파라미터

Anchor link to
파라미터
유형
필수설명
authstringPushwoosh 제어판의 API 액세스 토큰입니다.
applicationstringPushwoosh 애플리케이션 코드
geozonesarray지오존 파라미터를 JSON 배열로 지정합니다.
geozones.namestring지오존 이름입니다.
geozones.latstring원에 필요합니다.지오존 위도입니다. polygon이 설정된 경우 생략합니다 — 다각형 지오존은 자체 중심을 도출합니다.
geozones.lngstring원에 필요합니다.지오존 경도입니다. polygon이 설정된 경우 생략합니다 — 다각형 지오존은 자체 중심을 도출합니다.
geozones.cooldowninteger알림 전송 후 무응답 기간(초)입니다.
geozones.rangeinteger원에 필요합니다.지오존 범위(미터)입니다. 최소 50입니다. polygon이 설정된 경우 생략합니다 — 다각형 지오존은 자체 범위를 도출합니다.
geozones.polygonobject아니요지오존을 원 대신 다각형으로 만듭니다. lat/lng/range와 함께 사용할 수 없습니다 — 둘 다 보내면 거부됩니다. 다각형 지오존을 참조하세요.
geozones.contentstring or objectpresetCode가 비어 있는 경우 필요합니다.지오존 메시지 내용입니다.
geozones.presetCodestringcontent가 비어 있는 경우 필요합니다.content 대신 사용할 푸시 프리셋입니다.
geozones.clusterstring아니요지오존에서 클러스터를 바인딩 해제하려면 null을 지정하세요.
geozones.campaignstring아니요지오존에서 캠페인을 바인딩 해제하려면 null을 지정하세요. 생략하면 캠페인 값은 변경되지 않습니다. 참고: 프리셋의 캠페인보다 우선순위가 높습니다.
geozones.timetableobject아니요시간표 간격을 설정합니다.

요청 예시

Anchor link to
{
"request": {
"auth": "yxoPUlwqm............pIyEX4H", // Pushwoosh 제어판의 API 액세스 토큰
"application": "XXXXX-XXXXX", // Pushwoosh 애플리케이션 코드
"geozones": [{
"name": "Statue of George", // 필수. 지오존 이름.
"lat": "40.70087797", // 필수. 지오존 위도.
"lng": "-73.931851387", // 필수. 지오존 경도.
"cooldown": 60, // 초 단위, 필수. 알림 전송 후 무응답 기간
"range": 50, // 미터 단위, 최소 50, 필수. 지오존의 범위.
"content": "Lorem ipsum dolor sit amet,
consectetur adipiscing elit.", // 또는 객체
"presetCode": "AAAAA-BBBBB", // 선택 사항. content 대신 푸시 프리셋을 사용할 수 있습니다
"cluster": "GEOZONE CLUSTER CODE", // 선택 사항. 클러스터의 쿨다운 기간이 적용됩니다
"campaign": "CAMPAIGN_CODE", // 선택 사항. 지오존에서 캠페인을 바인딩 해제하려면 null을 지정하세요
"timetable": { // 선택 사항
"timezone": 1234, // 초 단위
"Mon": [ // 사용 가능한 요일: Mon, Tue, Wed, Thu, Fri, Sat, Sun. 푸시 전송
{
"start": "04:11",
"stop": "12:00"
}
],
"Sun": [
{ // 하나 또는 두 개의 간격
"start": "01:11",
"stop": "17:00"
},
{
"start": "18:01",
"stop": "23:59"
}
]
}
}]
}
}

한 번에 여러 지오존 추가하기

Anchor link to

geozones는 배열을 사용하므로 한 번의 호출로 전체 배치를 생성할 수 있습니다. 배치는 무언가를 쓰기 전에 전체적으로 유효성 검사를 받습니다: 항목이 거부되면 호출이 실패하고 해당 요청의 지오존은 생성되지 않습니다. 오류는 배열에서의 위치(0부터 시작)로 문제가 있는 항목을 명시합니다:

{
"status_code": 210,
"status_message": "geozones[301]: range: range는 50미터 이상이어야 합니다"
}

해당 항목을 수정하고 요청을 다시 보내세요. 성공 시 GeoZones는 보낸 항목과 동일한 순서로 새로운 숫자 ID를 포함합니다.

500개 이상의 항목으로 구성된 배치는 수락되어 내부적으로 청크로 분할됩니다. 전체 배열은 첫 번째 쓰기 전에 여전히 유효성 검사를 받지만, 쓰기 자체는 청크 간에 원자적이지 않습니다: 항목이 유효성 검사를 통과하더라도, 예를 들어 그 사이에 명명된 프리셋이 삭제되면 쓰기에 실패할 수 있습니다. 이 경우 호출은 작성된 ID와 함께 200을 반환하고, 실행을 중단시킨 항목을 명시하는 Errors 배열을 추가하므로 생성된 것은 손실되지 않습니다:

{
"status_code": 200,
"status_message": "OK",
"response": {
"GeoZones": [100016750, 100016751],
"Errors": [{ "index": 2, "message": "프리셋을 찾을 수 없음" }]
}
}

Errors는 모든 항목이 작성되었을 때 존재하지 않으므로, 완전히 성공한 응답은 변경되지 않습니다. 보낸 배열보다 짧은 GeoZones 배열은 항상 일부 항목이 생성되지 않았음을 의미합니다.

다각형 지오존

Anchor link to

lat, lng, range 대신 polygon을 보내 지오존을 다각형으로 만듭니다. polygon.vertices는 모양의 윤곽을 설명하는 {lat, lng} 포인트의 순서 있는 링입니다:

{
"request": {
"auth": "yxoPUlwqm............pIyEX4H",
"application": "XXXXX-XXXXX",
"geozones": [{
"name": "Downtown mall — ground floor",
"cooldown": 60,
"polygon": {
"vertices": [
{ "lat": 40.70087797, "lng": -73.931851387 },
{ "lat": 40.70112456, "lng": -73.931602211 },
{ "lat": 40.70095321, "lng": -73.930987654 },
{ "lat": 40.70068912, "lng": -73.931233456 }
]
},
"content": "Welcome! Enjoy 15% off your first purchase today."
}]
}
}

lat, lng, range는 링에서 파생됩니다 — 기기가 실제로 모니터링하는 원은 모양의 중심에 있으며 가장 먼 정점(최소 50m)에 도달하는 반경을 가집니다. polygonlat/lng/range와 함께 보내면 거부됩니다.

링을 열거나 닫아서 보낼 수 있습니다 — 마지막 정점이 첫 번째 정점을 반복하면 서버는 유효성 검사 전에 해당 닫는 중복을 삭제합니다. 결과 링에 대한 정점 유효성 검사: 3개에서 100개의 고유한 정점. 링의 점들이 동일 선상에 있거나, 가장자리가 자체 교차하거나, 날짜 변경선을 넘는 경우에도 거부됩니다.

updateGeoZone

Anchor link to

지오존 속성을 업데이트합니다.

POST https://api.pushwoosh.com/json/1.3/updateGeoZone

요청 본문 파라미터

Anchor link to
파라미터
유형
필수설명
authstringPushwoosh 제어판의 API 액세스 토큰입니다.
geoZoneIdstring/addGeoZone 요청의 지오존 ID입니다.
namestring아니요새 지오존 이름입니다.
cooldowninteger아니요업데이트할 쿨다운(초)입니다.
statusinteger아니요0 - 비활성화, 1 - 활성화.
contentstring아니요지오존 푸시 알림의 내용입니다. presetCode와 함께 사용할 수 없습니다.
clusterstring아니요새 클러스터 이름입니다. 지오존에서 클러스터를 바인딩 해제하려면 null을 지정하세요.
campaignstring아니요새 캠페인 ID입니다. 지오존에서 캠페인을 바인딩 해제하려면 null을 지정하세요. 생략하면 캠페인 값은 변경되지 않습니다. 프리셋의 캠페인보다 우선순위가 높습니다.
latnumber아니요지오존 위도입니다. polygon과 함께 사용할 수 없습니다.
lngnumber아니요지오존 경도입니다. polygon과 함께 사용할 수 없습니다.
rangeinteger아니요새 범위(미터)입니다. polygon과 함께 사용할 수 없습니다.
polygonobject아니요새로운 {lat, lng} 정점 링 — 모양을 대체하고 lat/lng/range를 다시 파생시킵니다. 다각형 지오존을 참조하세요. 양방향으로 작동합니다: 기존 원형 지오존에 보내 다각형으로 바꾸거나, 기존 다각형 지오존에 빈 링({"vertices": []})을 보내 다시 원으로 바꿀 수 있습니다. 모양을 변경하지 않으려면 polygon을 완전히 생략하세요. addGeoZone과 동일한 정점 유효성 검사를 거칩니다.
timetableobject아니요지오존 시간표입니다. 아래에서 자세한 정보를 확인하세요.

요청 예시

Anchor link to
{
"request": {
"auth": "yxoPUlwqm............pIyEX4H", // 필수, Pushwoosh 제어판의 API 액세스 토큰
"geoZoneId": 100016750, // 필수, /addGeoZone 메서드에서 가져옴
"name": "new geozone name", // 선택 사항
"cooldown": 222, // 초 단위, 선택 사항
"status": 0, // 선택 사항, 0 - 비활성화, 1 - 활성화
"presetCode": "BBBBB-AAAAA", // 선택 사항, "content"와 함께 사용할 수 없음
"content": "new geozone content", // 선택 사항, "presetCode"와 함께 사용할 수 없음
"cluster": "GEOZONE CLUSTER CODE", // 선택 사항. 지오존에서 클러스터를 바인딩 해제하려면 null을 지정하세요
"campaign": "CAMPAIGN_CODE", // 선택 사항. 지오존에서 캠페인을 바인딩 해제하려면 null을 지정하세요
"lat": 10.56, // 선택 사항, 지오존 위도
"lng": 12.523, // 선택 사항, 지오존 경도
"range": 500, // 선택 사항, 지오존 범위
"timetable": { // 선택 사항
"timezone": 1234, // 초 단위
"Mon": [ // 사용 가능한 요일: Mon, Tue, Wed, Thu, Fri, Sat, Sun. 푸시 전송
{
"start": "04:11",
"stop": "12:00"
}
],
"Sun": [
{ // 하나 또는 두 개의 간격
"start": "01:11",
"stop": "17:00"
},
{
"start": "18:01",
"stop": "23:59"
}
]
}
}
}

deleteGeoZone

Anchor link to

앱에서 지오존을 제거합니다.

POST https://api.pushwoosh.com/json/1.3/deleteGeoZone

요청 본문 파라미터

Anchor link to
파라미터
유형
필수설명
authstringPushwoosh 제어판의 API 액세스 토큰입니다.
applicationstringPushwoosh 애플리케이션 코드
geozonesstring제거할 지오존의 ID 배열 또는 단일 ID입니다.

요청 예시

Anchor link to
{
"request": {
"auth": "yxoPUlwqm............pIyEX4H", // 필수, Pushwoosh 제어판의 API 액세스 토큰
"application": "XXXXX-XXXXX", // 필수, Pushwoosh 애플리케이션 코드
"geozones": [550, 526] // 필수, 지오존 ID
}
}

addGeoZoneCluster

Anchor link to

앱에 지오존 클러스터를 추가합니다.

POST https://api.pushwoosh.com/json/1.3/addGeoZoneCluster

요청 본문 파라미터

Anchor link to
파라미터
유형
필수설명
authstringPushwoosh 제어판의 API 액세스 토큰입니다.
applicationstringPushwoosh 애플리케이션 코드
namestring클러스터 이름입니다.
cooldowninteger단일 사용자가 지오존 클러스터에서 동일한 메시지를 받기 전의 지연 시간(초)입니다.

요청 예시

Anchor link to
{
"request": {
"auth": "yxoPUlwqm............pIyEX4H", // 필수, Pushwoosh 제어판의 API 액세스 토큰
"application": "XXXXX-XXXXX", // 필수, Pushwoosh 애플리케이션 코드
"name": "Raccoon city", // 필수, 클러스터 이름
"cooldown": 3210 // 필수, 초 단위
}
}

deleteGeoZoneCluster

Anchor link to

앱에서 지오존 클러스터를 제거합니다.

POST https://api.pushwoosh.com/json/1.3/deleteGeoZoneCluster

요청 본문 파라미터

Anchor link to
파라미터
유형
필수설명
authstringPushwoosh 제어판의 API 액세스 토큰입니다.
applicationstringPushwoosh 애플리케이션 코드
geoZoneClusterstring제거할 지오존 클러스터의 ID입니다.

요청 예시

Anchor link to
{
"request": {
"auth": "yxoPUlwqm............pIyEX4H", // 필수, Pushwoosh 제어판의 API 액세스 토큰
"application": "XXXXX-XXXXX", // 필수, Pushwoosh 애플리케이션 코드
"geoZoneCluster": "EA1CE-69405" // 필수, /addGeoZoneCluster 요청에서 얻은 클러스터 ID
}
}

listGeoZones

Anchor link to

앱의 지오존 목록을 검색합니다.

POST https://api.pushwoosh.com/json/1.3/listGeoZones

요청 본문 파라미터

Anchor link to
파라미터
유형
필수설명
authstringPushwoosh 제어판의 API 액세스 토큰입니다.
applicationstringPushwoosh 애플리케이션 코드

요청 예시

Anchor link to
{
"request": {
"auth": "yxoPUlwqm............pIyEX4H", // 필수, Pushwoosh 제어판의 API 액세스 토큰
"application": "XXXXX-XXXXX" // 필수, Pushwoosh 애플리케이션 코드
}
}

listGeoZoneClusters

Anchor link to

앱의 지오존 클러스터 목록을 검색합니다.

POST https://api.pushwoosh.com/json/1.3/listGeoZoneClusters

요청 본문 파라미터

Anchor link to
파라미터
유형
필수설명
authstringPushwoosh 제어판의 API 액세스 토큰입니다.
applicationstringPushwoosh 애플리케이션 코드

요청 예시

Anchor link to
{
"request": {
"auth": "yxoPUlwqm............pIyEX4H", // 필수, Pushwoosh 제어판의 API 액세스 토큰
"application": "XXXXX-XXXXX" // 필수, Pushwoosh 애플리케이션 코드
}
}