푸시 알림 캠페인 API 트리거 발송
Process 코드 값
범위 | 에러 코드 | 에러 메시지 | HTTP 상태 코드 |
---|---|---|---|
0 | 성공 | 200 | |
헤더 | 1101 | "x-api-key" 헤더 누락 | 400 |
1102 | Content-Type 헤더 누락 | 400 | |
일반 | 1201 | 요청 본문에 내용이 없음 | 400 |
1202 | 요청 데이터 행이 너무 많음 | 400 | |
1203 | 요청 포맷이 잘못됨 | 400 | |
1204 | 올바르지 않은 날짜 형식입니다 | 400 | |
인증 | 1401 | API 키가 유효하지 않음 | 401 |
1402 | API 사용권한 없음 | 401 | |
1403 | 등록되지 않은 회원사 | 401 | |
1404 | 미 승인 회원사 | 401 | |
1405 | 만료된 회원사 | 401 | |
푸시 | 1901 | 캠페인이 없음 | 404 |
1902 | 유효하지 않은 캠페인 | 400 | |
기타 | 2000 | 내부 서버 오류 | 500 |
발송하기
• 푸시 알림 캠페인 API 트리거 유형을 발송합니다.
• 캠페인키, 발송 대상자 정보를 요청 본문에 넣어서 호출합니다.
기본 정보
메소드 | URL | 인증 방식 |
---|---|---|
POST | https://api.groobee.io/messages/push/trigger | API Key |
요청 헤더
이름 | 설명 | 필수 |
---|---|---|
x-api-key | x-api-key: ${x-api-key} | O |
Content-Type | Content-Type: application/json | O |
요청 본문
100명이 넘으면 오류를 반환합니다. (processCode : 1202)
이름 | 타입 | 설명 | 필수 | 비고 |
---|---|---|---|---|
campaignKey | String | 캠페인 키 | O | 그루비 관리자 페이지에서 푸시 알림 캠페인(API 트리거 유형) 생성 시 발급 |
users | User[] | 발송 대상자 정보 | O | 해당 캠페인 발송 대상자 정보의 리스트 (1회 요청 당 최대 100명) |
User
이름 | 타입 | 설명 | 필수 | 비고 |
---|---|---|---|---|
memberId | String | 회원 ID(회원번호) | O | 발급 |
properties | Map | 사용자 설정 변수의 키-값 쌍을 가지는 객체 | X | 푸시 알림 캠페인(API 트리거 유형)에서 사용자가 생성한 커스텀 변수의 키와 그에 해당하는 값의 쌍 |
응답
응답의 dispatchId 값을 통해 발송 결과를 조회할 수 있습니다.
이름 | 타입 | 설명 |
---|---|---|
dispatchId | String | API 발송 요청에 대한 키 |
예제
요청
{
"campaignKey" : "PU96b0bb8cb8b4533f965d2e7acd0383b6"
"users" : [
{
"memberId" : "groobee1",
"properties" : {
"name" : "이그루",
"goods_name" : "원피스",
"goods_price" : "120,000",
...
}
},
{
"memberId" : "groobee2",
"properties" : {
"name" : "김그루",
"goods_name" : "청바지",
"goods_price" : "200,000",
...
}
},
...
]
}
응답(성공)
{
"httpStatus": {
"code": "200",
"reasonPhrase": "OK"
},
"processCode": "0",
"processValue": {
"dispatchId" : "9ba020b4ef0a40b4872b3d8de1f2322f"
}
}
응답(실패)
과금하지 않았을 시 에러를 리턴합니다.
{
"httpStatus": {
"code": "401",
"reasonPhrase": "Unauthorized"
},
"processCode": "1402",
"processValue": "해당 서비스는 과금이 필요합니다."
}
발송 결과 조회하기
• 푸시 알림 캠페인 API 트리거 유형의 발송 결과를 조회합니다.
• 푸시 알림 캠페인 API 트리거 유형 발송하기 응답 값의 dispatchId를 path에 넣어서 요청합니다.
기본 정보
메소드 | URL | 인증 방식 |
---|---|---|
GET | https://api.groobee.io/messages/push/statuses/{dispatchId} | API Key |
요청 헤더
이름 | 설명 | 필수 |
---|---|---|
x-api-key | x-api-key: ${x-api-key} | O |
요청 경로 변수
이름 | 설명 | 필수 |
---|---|---|
dispatchId | API 발송 요청에 대한 키 | O |
응답
이름 | 타입 | 설명 |
---|---|---|
dispatchId | String | API 발송 요청에 대한 키 |
results | PushApiResult[] | 발송 건 각각의 결과 리스트 |
PushApiResult
이름 | 타입 | 설명 |
---|---|---|
memberId | String | 회원 ID (회원번호) |
deviceType | String | 디바이스 타입 - ANDROID : 안드로이드 - IOS : iOS |
pushToken | String | 푸시 토큰 |
status | String | 발송 결과 - SENDING : 발송 중 - SUCCEED : 성공 - FAILED : 실패 |
예제
응답(성공)
{
"httpStatus": {
"code": "200",
"reasonPhrase": "OK"
},
"processCode": "0",
"processValue": {
"dispatchId" : "9ba020b4ef0a40b4872b3d8de1f2322f",
"results" : [
{
"memberId" : "groobee1",
"deviceType" : "IOS",
"pushToken" : "ccmxg2-fQY6nA5vlmkXQ9w:APA91bHM3dtNcwWLiCfXe2NIu8689Z0PRBMUsICwu-hQAS9ut0m6TGjtbyXsFRl6oDLFWq37MH03m46mrQY_sGcm3JOiyo8kR8Hgny_22q1ku2I_k1yNDYo-PXc1gE9OsdP8XEctbbP5",
"status" : "SUCCEED"
},
{
"memberId" : "groobee1",
"deviceType" : "ANDROID",
"pushToken" : "fEVPUBO3ToeEPOpsnN2yi8:APA91bERcry4jdQOVt9yVqTm8k-vL1_C_Bv0j5_cDlJCibOd1y-MdYGgfQC7Me0PgbzABCEDMWOcGs47rrpGiagug4ujxaoltX0fcoLdHCKHhtoKpomepzRfEPh8qB0o9G5loHH3NeId",
"status" : "FAILED"
},
{
"memberId" : "groobee2",
"deviceType" : "ANDROID",
"pushToken" : "dCwXIsfJRHymW6SWL6GscT:APA91bFaaPr8wdvKZ0jtxXGCpaG-k-lZAzuiAd_ntdXOWwqWl_xhrPFv2k_p_f12vivKq43LAVN9eDZBvPr5VRhrgKhxzo9_Dg_zzvxByIxVF0-Ove0v-rWnk8k5y-2q0hH_CEW8i_oG",
"status" : "SENDING"
},
{
"memberId" : "groobee3",
"deviceType" : "IOS",
"pushToken" : "dky9RrH0G0iLgkaOy5bC3L:APA91bGks_dHQpP9kkS7cwSCweX_0g7RQrzWLS9kkTXEnEesKWPTFeStpXO1VSRVgrP5m-0FB5gimj2Ot3tFwUmEa1n-YjIOIqcY50d2Mj4IgiC0nMhy0FAW_nw0kq8eaBi4N1ZKaHiH",
"status" : "SUCCEED"
},
...
]
}
}
응답(실패)
과금하지 않았을 시 에러를 리턴합니다.
{
"httpStatus": {
"code": "401",
"reasonPhrase": "Unauthorized"
},
"processCode": "1402",
"processValue": "해당 서비스는 과금이 필요합니다."
}