무제한 푸시 서비스를 제공하는 OneSignal로 푸시서비스를 제작 하면 월 건별, Device 갯수 상관 없이 무료로 무제한 푸시발송이 가능합니다.

OneSignal 은?

미국 샌프란시스코 안에 위치한 푸시서비스를 제공하는 회사입니다.

무료버전(Free), 스타터버전($99/Month), 프로버전($500/Month)을 제공하고 있으며, 푸시발송은 모든 고객에게 전부 무제한 무료로 제공하고 있습니다.

안드로이드 뿐만 아니라 웹(WEB),  아이폰(IOS) 등의 푸시도 제공하고 있습니다.

이번 시간은 Android 어플에서 Onsignal 푸시 서비스를 구축하는 방법을 알아보겠습니다. 어렵지 않으니 한번 도전해보세요!

준비물

Google  계정

절차

  1.  Firebase Console 설정
    1-1) 프로젝트 만들기
    1-2) Firebase Console 에서 google-services.json 파일 다운로드 후 프로젝트에 추가하기
  2.  OneSignal 가입 후 설정
  3.  MainActivity에 소스추가

1-1. Firebase Console 프로젝트 만들기

  1.  Firebase Console 링크 클릭
  2.  ‘+ 프로젝트 추가’ 클릭
  3.  프로젝트 이름 설정 (4자 영문기준 이상)
    ex) test1313
  4.  Google 애널리틱스 (옵션)

1-2. Firebase Console 에서 google-services.json 파일 다운로드 후 프로젝트에 추가하기

  1.  앱에 Firebase를 추가하여 시작하기 밑에 안드로이드 로고 클릭
  2.  패키지 이름(android studio에서 앱 제작 시 설정한 패키지명) 입력 후 앱등록 클릭 (하위옵션은 선택사항)
    ex) com.test.app -> java 파일 맨 위 package com.test.app; 으로 쉽게 확인 가능합니다.
  3.  구성 파일 다운로드 – google-services.json 다운로드 클릭
  4.  Android Studio – 왼쪽 상단 Android를 Project로 변경 후 앱명 – app 폴더에 파일 넣기 [사진참조]
  5. build.gradle(Project) 안에 dependencies 에 classpath ‘com.google.gms:google-services:4.3.3’ 추가
  6. build.gradle(app) 안에 맨위
    apply plugin: 'com.android.application' 아래에
    apply plugin: 'com.google.gms.google-services' 소스 추가
    
    dependencies 안에
    implementation 'com.google.firebase:firebase-messaging:20.0.0'
    implementation 'com.google.firebase:firebase-core:17.2.0'
    
    소스 추가
  7.  Firebase 왼쪽 Project Overview 톱니바퀴 클릭 후 프로젝트 설정 클릭
  8.  클라우드 메세징 – 서버키, 발신자 ID 메모장에 저장해놓기 [사진 참조]

2.  OneSignal 가입 후 설정

  1.  OneSignal 클릭 후 Sign up – 아래 간편 로그인 또는 Email로 회원가입
  2.  NEW APP/WEBSITE 버튼 클릭
  3.  APP NAME 에 자기 앱 이름 넣은 후 CREATE
    ex) TEST앱
  4.  Google Android 클릭 후 NEXT
  5.  Firebase Server Key : 에 위에서 적어둔 서버키 붙여넣기 (1.2.8 참고)
  6.  Firebase Sender ID : 에 위에 적어둔 발신자 ID 붙여넣은 후 SAVE (1.2.8 참고)
  7.  Native Android 클릭 후 NEXT
  8.  Your App ID 메모장에 저장해놓기
build.gradle(app) 에
buildscript {
    repositories {
        maven { url 'https://plugins.gradle.org/m2/'}
    }
    dependencies {
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.4, 0.99.99]'
    }
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
dependencies {
    implementation 'com.onesignal:OneSignal:[3.11.2, 3.99.99]'
}
코드 넣기 android > defaultConfig 부분에
 manifestPlaceholders = [
          onesignal_app_id: 'PUT_YOUR_ONESIGNAL_APP_ID_HERE',
          // Project number pulled from dashboard, local value is ignored.
          onesignal_google_project_number: 'REMOTE'
      ] 코드 넣기 * PUT_YOUR_ONESIGNAL_APP_ID_HERE 에 저장해놓은 Your App ID 붙여넣기 (2.8 참고)

사진출처 : onesignal document https://documentation.onesignal.com/docs/android-sdk-setup

3. MainActivity에 소스 추가

public class YourAppClass extends Application {
   @Override
   public void onCreate() {
      super.onCreate();
     
      // OneSignal Initialization
      OneSignal.startInit(this)
        .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
        .unsubscribeWhenNotificationsAreDisabled(true)
        .init();
   }
}

이제 자신이 만든 앱을 실행해보세요!  OneSignal Dashboard의 Subscribed User에 등록된 사용자 수가 나타나게 됩니다.