티스토리 뷰



이 글에서는 GCM을 사용하는 방법과, 실제로 기기에 Push메세지를 보내는 방법을 알아보겠습니다

몇개의 큰 목차로 나눠지며, GCM를 사용하려면 구글 개발자 API를 활성화 한뒤 API Key를 발급받아야 합니다

지금부터 GCM의 매력에 빠져보도록 하겠습니다!




1. GCM(Google Cloud Messaging)이란??

Google Cloud Messaging, 줄여서 GCM은 구글 서버를 이용해서 "무료"로 Push알림을 보낼수 있도록 해주는 서비스 입니다


구글 2012 I/O에서 그전까지 사용한 C2DM대신 GCM을 들고 나왔습니다

그뒤 구글은 C2DM의 신규 가입을 중단하고, GCM만 사용하도록 권장하고 있습니다

참고 : http://developer.android.com/google/gcm/index.html


GCM이 구글 계정을 사용하고, 그 때문에 API 8 (프로요)이상부터만 사용이 가능합니다


최근에 GCM Library가 deprecate되고 Google Play Service로 통합되었습니다

이 강좌에서는 deprecate된 GCM.jar을 사용할것이고, Google Play Service를 사용한 방법은 나중에 따로 소개하겠습니다

참고 : http://blog.hibrainapps.net/143


그럼 아래부터 GCM을 활성화 하는 방법을 알아보겠습니다




2. GCM 활성화 하기

먼저 Google APIs Console에 접속후 구글 계정으로 로그인 해주세요

https://code.google.com/apis/console/


구글 API를 사용한 적이 없으면 아래처럼 나타납니다

Create Project를 클릭해 주세요



New Project에서 프로젝트 이름과, 프로젝트 ID를 모두 입력한뒤 Create를 눌러주시면 완료입니다



그다음 APIs & auth부분의 APIs에 접속하신다음

Google Cloud Messaging for Android를 찾아주세요


스샷이 짤렸지만 오른쪽의 OFF를 클릭해 ON으로 변경해야 합니다



약관 동의가 나오면 Accept를 눌러주세요



정상적으로 활성화된 모습입니다



이제 아래 스샷을 보시면

Overview에 접속하시면 Project Number가 있습니다

이 숫자를 메모해 두시거나 복사해 주세요


저 숫자는 PROJECT_ID입니다



이제 GCM Server Key를 생성해야 합니다

APIs & auth의 Credentials에 들어가 주세요

그다음 Public API access의 Create New Key를 눌러주세요



나타나는 창에는 Server Key를 선택해 주시면 됩니다



아래 스샷은 허용할 IP를 입력하는 곳입니다

아무것도 안쓰면 모든 IP를 허용합니다


아무것도 쓰지 않고 Create를 눌러주세요



이제 Public API access를 다시 보시면 Key for server applications가 생겼을겁니다


이곳의 API Key도 따로 복사해 주세요

이 API Key는 GOOGLE_API_KEY입니다


이제 API를 활성화 하는 일이 모두 마무리 되었습니다



다음편부터는 이 API키를 가지고 실제로 GCM을 날려보도록 하겠습니다

댓글
  • gcm 안드로이드를 한창 공부중인 학생인데요, 제가 너무 초보라서 초보적인 질문을 하더라도 꼭 답변부탁드립니다ㅠㅠ GCM을 사용할 때 푸쉬 화면의 경우에도 eclipse내에서 xml파일로 layout을 구성해놓고 연결시키면 되는건가요? 구글링 실력이 부족한것인지 아무리 찾아봐도 잘 이해를 못하겠네요... Mysql과 php 등을 이용하여 단말간의 푸쉬화면을 전송하고 싶은데 이럴 때는 어떤 식으로 소스를 작성해야할지도 너무 막막해서 참고할만한 사이트라도 알 수있을까싶어 댓글 남깁니다... 2014.05.11 00:40 신고
  • 젊은이 저도 이제 gcm 구현 중에 맞는지는 모르지만 일단 남겨봅니다.
    말씀하시는 push라는게 서버로 메시지를 보내는 것이라면 꼭 eclpise 내에서 layout을 만들 필요는 없어요. 일례로 웹페이지에서 바로 gcm을 쏴서 단말에서 받게 끔 구현할 수도 있구요. developer.android.com 보시면 http, ccs로 구현하는 방법이 나와있으니 참고하시면 될 듯 합니다
    2014.05.14 13:40 신고
  • Favicon of http://basixblog.tistory.com Basix 오늘도 새로 올라올 GCM 강좌를 기다립니다 ^^ 2014.07.29 19:41 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 기기에서 발신 수신 모두하는건 오래전에 성공했지만 컴퓨터에서 푸쉬를 보내는거랑 이런부분이 해결이 안되서 다음편을 못쓰고 있습니다.. 2014.07.29 21:27 신고
  • Favicon of http://basixblog.tistory.com Basix 아 못기다리겟어요 ㅠㅠ
    폰에서 폰으로 보내는거 올려주시면 안되나요? ㅠㅠ
    2014.08.23 23:22 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 오래전에 만들어둔 GCM소스를 올려두겠습니다 ㅎㅎ
    제가 실제로 테스트 해본 어플이고, 열어보시면 제 개인 키까지 있습니다
    물론 제 키 부분을 베이직 스터더님의 것으로 바꿔주셔야 합니다

    https://www.dropbox.com/sh/y2y0giutv9csefn/AAC9HrT7BDpEm-wVtmHKIcnSa?dl=0

    오래전에 gcm라이브러리가 최신버전 api에서 사용중지됬고 구글 플레이 서비스를 이용해서 gcm을 보내는걸로 바꼈지만 지금도 사용은 가능할겁니다
    나중에 이부분까지 생각해서 글쓸예정입니다

    오래기다리게 해드려 죄송하네요..
    2014.08.23 23:50 신고
  • 김중호 안드로이드 스튜디오를 이용해서 푸쉬알림 서비스 구현 방법좀 알려주시면 감사하겠습니다.ㅠ

    제가 졸작으로 인터폰 동영상 스트리밍을 구현하기로 주제를 정하였는데 사물이 인터폰 근처로 오면 동작을 감지해서 핸드폰으로 사물이 감지되었다고 푸쉬알림이 오게끔 만들어야됩니다.

    찾아보니 구글 gcm서버를 이용해서 하는방법이 나와있어서 따라해봤는데 소스에서 자꾸 막혀버리고ㅠㅠ

    초보자들이 이해할수 있게 자세한 설명 부탁드리겠습니다.

    정말 급하네요;; 한달동안 계속 해봤는데 결국 계속 그자리에요..

    그리고 gcm서버가 아니더라도 혹시 다른방법으로도 푸쉬알림 받을수 있으면 부탁드려요

    간절합니다 ㅠㅠ
    2016.06.09 11:23 신고
댓글쓰기 폼