본문 바로가기 주메뉴 바로가기
appmake
앱메이크 소개회원 연동 푸시 알림

회원 연동 푸시 알림

웹사이트 회원 연동 푸시알림 이용안내 입니다.

1. 회원 아이디와 스마트폰 디바이스 맵핑

고객님의 앱을 설치한 스마트폰 기기와 웹사이트의 회원아이디를 서로 맵핑(연결) 시키기 위해, 웹사이트에 다음과 같은 JavaScript 내용을 추가합니다.
맵핑한 회원아이디는 회원 연동 푸시서비스에 사용 됩니다.
  • 사용하는 언어는 JavaScript 를 사용합니다.
  • 고객의 앱에서 실행될 때 회원아이디와 스마트폰기기가 맵핑 됩니다.

적용방법

# CASE 1 운영하는 웹사이트에서 로그인 이후 첫 페이지에 아래 함수를 추가 합니다. 여러 곳이면 그 곳마다 추가해 줍니다.

<script language="javascript">
    // 페이지 로딩 직후 앱에서 자동 호출 합니다.
    function callFromApp() {
        if (typeof app_login_complete === 'function') {
            app_login_complete('회원아이디');
        }
    }
</script>
  • callFromApp() 함수는 앱에서 페이지 로딩이 다 끝난 직후 호출하는 함수로 이름을 변경하면 안됩니다.
  • 회원아이디 : 스마트폰 디바이스와 맵핑하기 위해 웹사이트에 로그인 한 회원의 아이디를 넣어 줍니다.

# CASE 2 ajax 방식으로 로그인 처리 한 경우의 사용법 입니다.

function login() {
    ...
    $.ajax({
        type: "POST",
        url: action,
        data: form_data,
        success: function(response) {
            // 로그인 성공시
            if (response == 'success') {
                if (typeof app_login_complete === 'function') {
                    app_login_complete('회원아이디');
                }
            }
            ...
        }
    });
}

2. 회원연동 푸시 알림 보내기

  • 회원연동 푸시 알림 보내기는 웹사이트에서 appmake_sendpush.js 를 include 한 후, sendPush() 함수를 이용해서 전송 합니다.

회원연동 푸시 알림 요청 함수 정의

함수정의 목록 테이블
구분 내용
자바스크립트 위치
https://www.appmake.co.kr/asset/js/appmake_sendpush.js
요청함수
sendPush(no, app_srno, send_id, receive_id, title, contents, push_type=1, save_yn='Y', image='', link='')
파라미터 값
· no -> 발송요청번호, 이 번호를 이용하여 결과를 확인
· app_srno -> 앱 고유번호 (앱메이크에서 만드신 앱의 고유번호)
· send_id -> 발송자 회원아이디
· receive_id -> 수신자 회원아이디 (여러명에게 전송할 경우 '|'를 이용. ex, receiver1|receiver2|...)
· title -> 푸시알림 제목
· contents -> 푸시알림 내용
· push_type -> 1 : 상단 노티 + 팝업 으로 표시 (기본값), 2 : 상단 노티만 표시
· save_yn -> Y : 알림정보 저장 (기본값), N : 저장 안함
· image -> 이미지 위치 URL, 이미지 없는 경우 ""
· link -> 노티 또는 푸시팝업 확인버튼 클릭시 이동할 URL, 링크주소 없는 경우 ""

회원연동 푸시 알림 결과 함수 정의

알림결과 함수정의 테이블
구분 내용
자바스크립트 위치
해당 페이지에 선언
요청함수
function sendPush_result(data) {
    alert(data.no + ':' + data.result + ":" + data.msg);
}
파라미터 값
· data.no -> 발송요청번호
· data.result -> Y : 발송성공, N : 발송실패
· data.msg -> 발송결과에 따른 메시지
오류메시지(data.msg) 정보
· 발송자 정보가 등록되어 있지 않습니다.
  : 입력된 발송자 회원아이디가 등록되어 있지 않은 경우
· 수신자 정보가 등록되어 있지 않습니다.
  : 입력된 수신자 회원아이디가 등록되어 있지 않은 경우
· 등록된 도메인 정보와 맞지 않습니다.
  : 실행된 도메인 정보와 앱 기본정보내의 도메인 정보가 맞지 않은 경우

적용방법

# 예시

<script src="https://www.appmake.co.kr/asset/js/appmake_sendpush.js"></script>
    ...
<script>
// Case 1: 제목과 내용이 표시되는 팝업푸시 + 상단 노티 표시
function clickButton1() {
    if (typeof sendPush === 'function') {
        no = 101;
        app_srno = 1234;
        send_id = $("#send_id").val();
        receive_id = $("#receive_id").val();
        title = $("#title").val();
        contents = $("#contents").val();
        sendPush(no, app_srno, send_id, receive_id, title, contents);
    }
}

// Case 2: 제목과 내용을 상단 노티에 표시
function clickButton2() {
    if (typeof sendPush === 'function') {
        no = 102;
        app_srno = 1234;
        send_id = $("#send_id").val();
        receive_id = $("#receive_id").val();
        title = $("#title").val();
        contents = $("#contents").val();
        push_type = 2;
        sendPush(no, app_srno, send_id, receive_id, title, contents, push_type);
    }
}
// Case 3: 제목과 이미지를 상단 노티에 표시
function clickButton3() {
    if (typeof sendPush === 'function') {
        no = 103;
        app_srno = 1234;
        send_id = $("#send_id").val();
        receive_id = $("#receive_id").val();
        title = $("#title").val();
        contents = $("#contents").val();
        push_type = 2;
        save_yn = 'N';
        image = 'https://www.website.co.kr/images/push_image_sample.jpg';   // 예시
        sendPush(no, app_srno, send_id, receive_id, title, contents, push_type, save_yn, image);
    }
}
// Case 4: 제목과 이미지를 푸시팝업과 상단 노티에 표시하고 클릭시 링크URL로 이동
function clickButton4() {
    if (typeof sendPush === 'function') {
        no = 104;
        app_srno = 1234;
        send_id = $("#send_id").val();
        receive_id = $("#receive_id").val();
        title = $("#title").val();
        contents = $("#contents").val();
        push_type = 1;
        save_yn = 'Y';
        image = 'https://www.website.co.kr/images/push_image_sample.jpg'';  // 예시
        link = 'https://sports.v.daum.net/v/20181011170226585?f=m';     // 예시
        sendPush(no, app_srno, send_id, receive_id, title, contents, push_type, save_yn, image, link);
    }
}

// 발송에 대한 결과정보를 가져오는 방법
function sendPush_result(data) {
    alert(data.no + ':' + data.result + ":" + data.msg);
}
</script>

3. 서버사이드 푸시 알림 보내기

  • 고객님의 특정 서버에서 푸시알림 발송하려고 할 때 이용 합니다. [1. 회원아이디와 스마트폰 디바이스 맵핑]이 적용 되어 있어야 합니다.

적용방법

# PHP 예시

<?php
    $url = 'https://www.appmake.co.kr/PushClient/sendPush4ExtServer'; //접속할 url 입력
    $post_data["no"] = 101;         // 발송요청번호
    $post_data["app_srno"] = 1234;  // 앱 고유번호
    $post_data["send_id"] = "sender@gmail.com";     // 예시
    $post_data["receive_id"] = "receiver1@naver.com|receiver2@daum.net|abc123@hotmail.com";  // 예시
    $post_data["title"] = "서버에서 푸시발송";
    $post_data["contents"] = "서버에서 보내는 푸시발송 테스트 입니다.";
    $post_data["push_type"] = 1;
    $post_data["save_yn"] = "Y";
    $post_data["image"] = "";       // 이미지를 보낼 경우 이미지 위치 URL
    $post_data["link"] = "https://sports.v.daum.net/v/20181011170226585?f=m";   // 예시
    $post_data["key"] = "e9Vc0SiPFp9XoMrREnBD79ijmnJTHanmyghABRGm72o=";     // 앱 고유서비스키
    $post_data["from"] = 2;         // 서버에서 발송시 항상 2

    $header_data = [];

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url); //URL 지정
    curl_setopt($ch, CURLOPT_POST, 1); //0이 default 값이며 POST 통신을 위해 1로 설정
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $post_data); //POST로 보낼 데이터 지정
    curl_setopt ($ch, CURLOPT_POSTFIELDSIZE, 0); //이 값을 0으로 해야 알아서 post_data 크기 측정

    curl_setopt($ch, CURLOPT_HEADER, true); //헤더 정보를 보내도록 함
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data); //header 지정
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 이 값을 1로 하면 결과값을 return하게 되어 변수에 저장 가능
    $res = curl_exec ($ch);

    $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
    $header = substr($res, 0, $header_size);
    $body = substr($res, $header_size);

    $body_json = json_decode($body, true);
    print_r($body_json);

    curl_close($ch);
?>