ARCHIVES

태그

신고하기

상단 메뉴 페이지

기본 콘텐츠로 건너뛰기

[iOS, Android] 2부. 구글 파이어베이스를 통한 API 푸시 전송.

 


안녕하세요 치우 입니다.

이제 본격적으로 푸시를 보내 볼까요?
기본적으로 아이폰, 안드로이드폰 푸시 수신 방식은 알고 있어야 합니다.
주제에 맞는 Firebase 위주로 설명을 합니다.

1. 푸시 수신을 받기 위한 APP 준비

Android
- 푸시를 받을 서비스를 만들고 받을 준비를 한다.
- 파이어베이스 인스턴스를 생성하고, 서비스를 만들고, 각종 필요한 설정을 한다.


class Activity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity)
        FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener (
        this,
        OnSuccessListener<InstanceIdResult> { instanceIdResult ->
        val token = instanceIdResult.token
        Log.i("MyFirebaseMessaging", token)
    })     } }
class MyService : FirebaseMessagingService() {

private val TAG = "MyFirebaseMessaging"
override fun onNewToken(token: String) {
Log.d(TAG, "Refreshed token: $token")
}
override fun onMessageReceived(remoteMessage: RemoteMessage) {
        Log.d(TAG, "푸시 수신을 처리하는 내용.")
    }
iOS
- 푸시를 받을 서비스를 만들고 받을 준비를 한다.
- pods 로 라이브러리 등록

import UIKit

import FirebaseCore

import FirebaseMessaging


@UIApplicationMain

class AppDelegate: UIResponder, UIApplicationDelegate {


    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {


        
// Firebase 기본 설정

        FirebaseApp.configure()

        

        // Firebase 푸시 델리게이트

        Messaging.messaging().delegate = self
    
}

}


extension AppDelegate: MessagingDelegate {

    

    func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {

        guard let fcmToken = fcmToken else {

            return

        }

        print("Firebase registration token: \(fcmToken)")
    }
}


이제 App 은 푸시를 받을 준비가 되었다.

파이어베이스 콘솔에 프로젝트를 생성한다.

안드로이드의 경우 "google-services.json" 등록을 하면 바로 푸시를 보낼 수 있다.
아이폰의 경우 인증키 또는 인증서를 등록 후 사용할 수 있다.

이제 전송을 해보자.
전송은 포스트맨을 사용하여 전송하도록 한다.

1. 구버전 HTTP 전송 방법

2. v1버전 HTTP 전송방법

전송방법 규격 등 바뀐것은 문서를 통해 확인하면 되는데,
구버전과 v1버전의 가장 큰 차이점은 '보안'이다.

구버전의 경우 서버키만 알고 있으면 언제든지 보낼 수 있지만
V1버전은 임시로 권한을 얻어 (1시간) 동안만 보낼 수 있다, 시간이 지나 권한 토큰이 만료되면, 다시 로그인해서 권한을 얻어서 전송 해야 한다.
즉, 개발 할때에는 구버전 전송이 편하다,


1. 구버전 HTTP 전송

 가. 주소 : https://fcm.googleapis.com/fcm/send 
      해당 주소를 Post로 보내면 된다.
      
서버키 Authorization 은 Firebase Consol 에서 얻을 수 있다.

바디 메세지는 아래와 같이 보낼 수 있다.

    {
    "to":"토큰",
    "priority":"high",
    "data":{
    "alert": {
     "title": "타이틀",
    "body": "내용"
    }
    }    
    }

       이제 푸시를 보내보면 수신을 확인 할 수 있다.



2. V1버전 HTTP 전송

 가. 주소 : https://fcm.googleapis.com/v1/projects/프로젝트이름/messages:send
      해당 주소를 Post로 보내면 된다.
    프로젝트 이름이 주소에 있음을 주의 하자.
    인증방식이 Bearer 로 바뀌었다.
    Authorization 인증키는 구글 인증플레이그라운드 에서 받을 수 있다. 
    컨트롤+F 눌러서 Messaging API 를 찾아서 클릭한다.
    


    Step 3 까지 진행하면 우측 하단에 access_token 이 보인다.
    이걸 복사해서 사용한다. 이 토큰은 50분 정도 사용 가능 하다.
    이제 규약에 따라 전송 해본다.
    {
    "message":{
    "token" : "구글 푸시 토큰",
    "notification" : {
    "title" : "타이틀",
    "body" : "내용",
    "image" : "이미지"
    }
    }
    }

문서 규칙에 맞게 보내면 메세지를 확인 할 수 있다.

3부 에서는 현업에서 해당 메세지 사용법에 대해 기술한다.

















댓글