Server2Server

Server to Server 푸시 개요

핑거푸시의 Server to Server(원격 발송) 기능은 푸시 메시지 발송을 위해 핑거푸시 사이트를 방문할 필요 없이, 원격지 서버에서 핑거푸시 서버로 메시지를 전송하여 각각의 모바일 디바이스에 메시지를 발송할 수 있는 기능을 제공합니다.

사전 작업

1) 해당 기능을 이용하기에 앞서, 핑거푸시 개발자 사이트를 통해 다운 받은 개발환경에 맞는 SDK를 다운로드하여 보유하고 계신 application에 핑거푸시 기능이 통합되어야 하며, 이를 통한 푸시 발송을 위한 각각의 기기들의 Token 값에 맵핑 되는 식별자(Identity)들이 핑거푸시 Server에 저장되어야 합니다.

Token 값에 맵핑 되는 식별자 값은 해당 Token을 식별할 수 있는 유일한 문자열, 혹은 숫자열 등이 될 수 있습니다.

해당 값은 단말기를 사용하는 특정 고객을 지칭하는 경우 사용되며, 단, 기업의 개인정보 보호 이슈가 있다면 해당 식별자에 대해 개인정보가 아닌 값을 이용하여 처리하셔야 합니다.

2) 이러한 사전 작업 후 각각 원하는 경우에 따라 앞서 수집된 Token 별 Identity 값들을 API 가이드에 맞춰 파라미터에 담아, 핑거푸시 API Server에 전달되면 API serve에서 해당 메시지들을 처리 후 처리 결과를 JSON 값으로 반환하게 되며, 반환된 값에 따라 Client Server 측에서 경우에 맞게 결과 처리하시면 됩니다.

3) SDK & API 다운로드 및 설치 방법은 아래 링크를 참조해 주세요.

SDK 다운로드Android SDK 매뉴얼iOS SDK 매뉴얼

핑거푸시 Solution 설치의 경우 관련 SDK는 별도로 전달됩니다.

상세 기능

Server to Server API는 다음의 원격 기능을 제공합니다.

발송 유형별 API 사용의 예

핑거푸시는 API 유형에 따라 내부 자원을 할당하여 메시지를 처리하기에, 메시지 성격에 따라 다음과 같이 적절하게 API를 사용함으로써 효율적인 메시지 발송이 가능합니다.

발송 유형
발송 대상
발송 방식

전체 발송

동일 메시지를 모든 사용자에게 발송(광고 푸시 수신동의/태그 사용 가능)

A. 등록된 앱을 다운 받은 모든 대상자에게 일괄 메시지 발송

캠페인 발송

대량의 대상자(식별자)에게 동일 혹은 개별 메시지를 예약(즉시) 발송하는 경우

B. 다수의 대상자에게 개별 메시지 발송

C. 다수의 대상자에게 개별 설정값을 적용하여 발송

자동 발송, 스케쥴 발송

기념일 등 고객사 스케쥴링에 따라 다수의 대상자(식별자)에게 동일 혹은 개별 메시지를 보내는 경우

B. 다수의 대상자에게 개별 메시지 발송

C. 다수의 대상자에게 개별 설정값을 적용하여 발송

자동 발송, 즉시 발송

회원가입 상품구매, 영수증발행 등의 즉시성, 단발성 발송의 경우

D. 특정 대상자에게 단일 메시지 발송

API Rate Limit

핑거푸시 server to server api는 특정한 시간 내에 호출할 수 있는 API의 제한을 두고 있습니다. 핑거푸시에서는 DDoS 공격 예방과 안정적인 서비스 운영을 위해 Rate Limit를 설정하고 있습니다. 1분 동안 API Rate Limit를 초과하는 API 호출이 발생하는 경우에는 해당 요청이 실패하며, 다음 1분이 되었을 때 호출 요청 횟수가 0으로 갱신됩니다.

파라미터
설명

ratelimit-limit

분당 허용되는 최대 요청 횟수

ratelimit-remaining

잔여 분(minute) 동안 가능한 요청 횟수

retry-after

요청 갱신 시간까지 남은 초(second)

- ratelimit를 초과한 경우에만 _code: 429와 함께 반환

서비스 신청 및 시작

서비스 신청

핑거푸시의 Server to server 기능은 핑거푸시 사이트에서 유료 서비스 가입(Pro/Premium) 후 바로 사용이 가능합니다.

비용 처리는 익월 정산 후 청구됩니다.

서비스 시작

Server To Server Push 메시지 발송을 위해 필수적으로 핑거푸시 서버에 전달되어져야 하는 Parameter에는 Application Key, Application Secret, Customer Key가 있습니다.

해당 값들은 핑거푸시 사이트에 로그인 하신 후 확인하실 수 있습니다.

1) Application Key 및 Application Secret, Customer key 조회

핑거푸시 사이트에서 로그인 후, Service > 앱스 > 선택하고자 하는 앱의 플랫폼 설정 화면 상단에 표시됩니다.

2) Customer Key

12자리 난수로 되어 있으며 서비스 이용 권한 등을 조회하는데 이용되므로, 취급에 주의하셔야 합니다.

  • 만일 Customer Key를 분실 혹은 유출이 된 경우 새로고침 버튼을 통해 해당 페이지에서 재발급을 받으실 수 있습니다.

  • Server to Server 개발내용이나 Agent 등 모든 원격 서비스에 영향을 주므로, 꼭 필요한 경우가 아니면 적용하지 말아야 합니다.

  • Customer key를 재발급 받으신 경우에는 관련 API 소스가 적용된 부분의 Customer key를 재발급 받으신 키로 변경해 주셔야 합니다.

샘플 소스 안내

핑거푸시의 Server To Server 기능 이용에 대한 샘플은 Github를 통해 제공되고 있습니다. 해당 소스는 어떻게 원격에서 푸시를 발송할 수 있는지에 대한 간단한 예시이며, 성능 및 리소스 관리 부분에 대한 고려는 되어 있지 않으므로, 각각의 사용자 환경에 맞는 소스 구성이 필요합니다.

현재는 JAVA/JSP 버전과 PHP 버전을 제공하고 있으며, 아래 링크를 참조해 주세요.

JAVA 환경

JAVA 버전 샘플의 경우 원격 접속과 JSON 파싱을 위한 library 등을 사용하고 있으며 해당 library 들은 jar 형태로 lib폴더에 위치해 있습니다.

또한, 발송 처리를 위한 VO 및 비즈니스 로직은 com.fingerpush.push 패키지에 작성되어 있으며, 이를 이용한 간단한 발송 샘플은 JSP 폴더에 샘플 파일이 존재합니다.

Github 샘플파일 폴더 구조(JAVA Version)

PHP 환경

PHP 버전 샘플의 경우 발송처리를 위한 로직이 Fingerpush 폴더에 작성되어 있으며, 이를 이용한 간단한 발송 샘플은 루트에 파일이 존재합니다.

PHP 버전에 맞게 사용하셔야 됩니다.

Github 샘플파일 폴더 구조(PHP Version)

꼭 확인해 주세요.

해당 API의 용도 외 사용 시 과도한 트래픽 유발 등으로 인해 API 서버에 부하를 주어 여타 사용자들에게 피해를 줄 수 있는 바, 사전 예고 없이 해당 서비스 접근이 차단될 수 있습니다.

  • ex) 다수 건 발송 처리를 단일 건 발송을 루프 처리하여 발송하는 경우

  • ex) 수천 혹은 수만 건 시, 다수 건 발송에서 식별자를(500건 단위로) 나누어 하나의 msgidx에 실어 보내는 것이 아닌, 각각 다른 msgidx로 발송 요청을 하게 되는 경우

Last updated