티스토리 뷰
728x90
반응형
<?php
$accountType = 'HOSTED_OR_GOOGLE';
$Email = '지메일계정주소';
$Passwd = '비밀번호';
$source = 'Test';
$service = 'ac2dm';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$account_info = array('accountType' => $accountType, 'Email' => $Email, 'Passwd' => $Passwd, 'source' => $source, 'service' => $service);
curl_setopt($ch, CURLOPT_POSTFIELDS, $account_info);
$response = curl_exec($ch);
$auth_tmp = substr(strstr($response, "Auth="), 5);
$auth = substr($auth_tmp, 0, strlen($auth_tmp)-1);
curl_setopt($ch, CURLOPT_URL, "https://android.apis.google.com/c2dm/send");
$registration_id = '고유아이디';
$collapse_key = 1;
$msg = '안녕하세요 C2DM 테스트 입니다';
$data = 'registration_id='.$registration_id.'&collapse_key='.$collapse_key.'&data.msg='.urlencode($msg);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$headers = array(
"Content-Type: application/x-www-form-urlencoded",
"Content-Length: ".strlen($data),
"Authorization: GoogleLogin auth=$auth"
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
애플에게 APNS(apple push notification service)가 있다면
안드로이드는 프로요 부터 지원하는 c2dm이 있습니다.
위의 소스코드는 php에서 c2dm을 발송하는 소스코드 예제입니다.
안드로이드의 c2dm은 1024 bytes까지 전송이 가능하며
전송후에 response된 값으로 사용자가 어플을 삭제하였는지 확인이 가능합니다.
레퍼런스참고
사용하실때는 지메일 계정정보를 넣어야 하는데
반드시 gmail에 가입된 계정이어야 합니다.
구글 어플리케이션을 통해 메일을 사용하고 있더라도 지메일에 가입이 안된 계정이라면
C2DM을 사용하실수 없습니다.
$collapse_key 는 1이라고 단순히 입력해도 c2dm이 쏴지나
동일한 내용의 c2dm이 발송될때 이 키를 가지고 서로 다른메시지 인지 확인을 한다고 하네요.
c2dm은 메시지 내용도 같고 collapse_key도 같으면
기존에 전달한 동일한 메세지로 판별하고 해당 메세지를 재전송하지 않습니다.
보통 url을 적는것이 좋다고 하는데
url이 긴경우도 있으니 꼭 url을 쓰지 않더라도 적당히 활용하시면 될것 같습니다.
실제로 테스트 해보면 그냥 단순히 1로 적어놔도
굉장히 많은 숫자를 같은 내용으로 발송하지 않는한 발송이 실패하지는 않는것 같습니다.
$auth 값을 활용할때는 문자열 끝에 개행문자가 있는지 반드시 체크해주시면
삽질을 할 걱정은 좀더 줄어들겁니다~!
728x90
반응형
'WEB2.0' 카테고리의 다른 글
HTML5 웹 애플리케이션 공모전 (0) | 2012.08.28 |
---|---|
페이스북 페이지를 만드는 가장 쉬운 방법 소시지 (0) | 2012.07.18 |
HTML5로 간단하게 멀티업로드 구현하기 (3) | 2011.04.12 |
php를 이용한 쉽고 간단한 엑셀파일 생성하기 (0) | 2010.05.15 |
애플은 우리에게 브라우저 선택권을 달라 (3) | 2010.03.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Apple
- 모바일
- JavaScript
- 아이폰
- 벤처
- 애플
- 앱스토어
- iPhone
- 아이디어
- 웹표준
- 대학생
- 어플리케이션
- 안드로이드
- 자바스크립트
- 공모전
- CSS
- android
- 창업
- php
- 네이버
- 앱
- 트위터
- AWS
- 소프트웨어
- 게임
- 스마트폰
- 구글
- 경진대회
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함