[GCM] GCM Message Parameter (JSON)

2016. 4. 6. 10:03Mobile

Google Cloud Messaging로 전송하는 Message Parameter

Parameter Description
to 메시지 수신자에 대한 정보입니다. Registration Token, Notification Key, Topic 중 하나를 지정하셔야 합니다.
registration_ids
수신대상 ID 또는 Registration Token을 지정해주세요. (최대 1000개)
notification_key
(Deprecated-
Optional)
이 값은 Deprecated되었습니다. 대신에 to를 사용해주세요. 한 사용자가 보유한 여러 Device들에 설치된 App 전체에 Message를 전송합니다. 이 값이 지정되면 registration_ids는 생략하실 수 있습니다. (최대 20개)
collapse_key (Optional)
“업데이트 필요”와 같은 임의 문자열로써, 이 값을 지정하면 같은 Collapse_Key의 Message끼리 Group화 됩니다. 사용자가 Offline 상태일 때 Queue에 쌓인 메시지 중에서 Collapse_Key가 같은 Message는 그룹화되어 가장 최근에 보낸 1개만 사용자에게 전달됩니다. 중복 메시지가 사용자에게 수신되는 것을 막기 위해 사용하실 수 있으며, 최대 4개의 Collapse_key를 지원합니다. 만약 4개를 넘기면 GCM은 임의로 4개의 Key를 선택합니다.
notification GCM은 사용자 Device에서 App을 대신하여 Message를 자동으로 표시합니다.  미리 정의된 title, body, icon의 하위 key를 가지며 각각 제목, 내용, 아이콘으로 구성되어 사용자에게 출력됩니다. 앱이 Inactive 상태인 경우 단지 Notification Tray에만 Message가 출력됩니다.
data
(Optional)
4KB 미만의 JSON으로써 사용자에게 전달될 Data입니다. Client App이 Data를 처리하는 코드를 작성하셔야 합니다. "data" : { "score" : "3x1" }와 같은 Key Value 쌍으로 구성되어야 하며 Key Value개수에 제한은 없습니다. 예약된 키워드를 Key값으로 사용할 수 없으므로 주의가 필요합니다. (예: from, to, google로 시작하는 경우)
delay_while_idle
(Optional)
true로 설정하면 Device가 Idle일 때는 전달되지 않으며, 사용자가 Device를 활성화 하는 순간 전달됩니다. 기본값은 false입니다.
time_to_live
(Optional)
사용자가 휴대폰을 꺼두었거나, delay_while_idle값이 활성화 된 경우, Message는 즉시 사용자에게 전달되지 않고 GCM 저장소에 보관되게 됩니다. 이 값은 GCM에 보관될 수 있는 최대 시간(초단위)를 지정합니다. 기본값은 4주이며 최대 2,419,200초(4주)까지 지정하실 수 있습니다.
restricted_package_name
Package Name을 지정할 경우 해당 Package Name과 일치하는 대상 App에게만 Message가 전달됩니다.
dry_run
true로 설정할 경우 실제로 메시지가 전달되지 않고 요청이 수행됩니다. 이는 개발자가 테스트하기 위한 용도로 사용됩니다.
priority 우선순위를 정합니다. 유효한 값은 normal, high 입니다. (iOS는 5, 10) 기본값은 normal이며 이 경우 Client App의 배터리 소모를 최소화 합니다. 대신에 메시지가 도착하기 까지 약간의 지연이 있을 수 있습니다(대부분은 즉시 도착함..)

high 우선순위의 경우 즉시 메시지가 전달됩니다. 앱은 장치를 깨우고 서버로의 네트워크 통신을 개시합니다. 채팅, 문자, 화상전화 앱 처럼 즉시 전달이 유효한 앱의 경우 적합합니다.

GCM의 제약사항

GCM에서 유일한 제약사항은 데이터가 사용자에게 전달되지 않았을 때, 저장되는 메시지의 총 개수입니다. 장치당 총 100개까지 저장되며, 만약 100개가 초과된 경우 모든 저장된 메시지는 폐기됩니다. 사용자가 Device의 전원을 켜면 사용자에게 이에 관한 특별한 메시지가 전달되게 됩니다.