php를 이용해 FCM으로 메시지를 보내기 위한 참고 문서 입니다.

 

[공식문서]

보내기 요청승인 : https://firebase.google.com/docs/cloud-messaging/auth-server?authuser=0 .

 

[참고문서]

php 문서 : https://link2me.tistory.com/1358 .

 

1. php 서버키 확인.

프로젝트에서, 톱니 바퀴 버튼을 눌러 프로젝트 설정 버튼을 눌러 주도록 합니다.

설정페이지에서 클라우드 메시징 탭을 눌러 서버키를 확인합니다.

그다음 안드로이드 앱에서 조사된 키값을 조사해 둡니다.

 

 

2. 보내기 요청하기.

공식 문서에 보내기 요청 승인 부분의 HTTP v1 보내기 요청 승인 부분이 있습니다. 이 부분을 확인하시면 됩니다.

그리고 메시지를 작성할 때는 여러 플랫폼의 메시지 맞춤설정을 꼭 확인해서 보내주세요. 헤더만 맞고 어떤 데이터를 보내든지 푸쉬는 성공으로 인식합니다. 그래서 앱이 갑자기 다운될 수 있습니다. php는 REST 부분을 보면됩니다.

애플과 안드로이드 공용으로 보내려면, 아래 형식에 맞춰 주면됩니다.

{
  "message":{
     "topic":"industry-tech",
     "notification":{
       "title": "$GOOG" up 1.43% on the day",
       "body":"GOOG gained 11.80 points to close at 835.67, up 1.43% on the day."
     },
     "android":{
       "ttl":"3600s",
       "notification"{
         "icon:stock_ticker_update"
         "color:#f45342"
       }
     },
     "apns": {
       "payload": {
         "aps": {
           "badge": "42"
         }
       }
     },
     "webpush":{
       "headers":{
         "TTL":"86400"
       }
     }
   }
 }

아래는 푸쉬를 보내기 위한 클래스 입니다.

class c_app
  {


    // 입력받은 값들을 저장해 주도록 합니다.
    public $serverKey;
    public $title;
    public $body;
    public $userToken;


    function __construct( $_serverKey, $_title, $_body, $_userToken )
    {

      // 입력 받은 값들을 저장해 주도록 합니다.
      $this->serverKey = $_serverKey;
      $this->title = $_title;
      $this->body = $_body;


      // 토크을 저장합니다.
      $this->userToken = $_userToken;

      // 토큰이 배열이 아닌 하나라면, 배열로 감싸줍니다.
      if( is_array( $this->userToken ) )
      {
        $this->userToken = array( $_userToken );
      }



    }


    function get_message()
    {


      // 하나의 데이터를 만들어 주도록 합니다.
      $messageArray['notification'] = array();
      $messageArray['notification']['title'] = $this->title;
      $messageArray['notification']['body'] = $this->body;
      $messageArray['registration_ids'] = [$this->userToken];
      return json_encode( $messageArray ) ;



    }



    function send()
    {

          $sendQuery = $this->get_message(  );

          // 보낼 데이터를 만들어 주기 위한 기본값을 설정합니다.
          $endline = "\r\n";
          $req = "";


          // 구글에서 요청한 필수 헤더를 추가합니다.
          $req = "POST /fcm/send HTTP/1.1" . $endline
          . "Host: fcm.googleapis.com" . $endline
          . "Content-Type: application/json" . $endline
          . "Authorization: key={$this->serverKey}" . $endline
          ;


          // POST 데이터를 보내기 위한 기본 헤더를 추가힙니다.
          $req .= "Content-Length: " . strlen($sendQuery) . $endline
          . "Connection: Close" . $endline
          ;

          // 헤더의 끝을 표시하는 빈 문자열을 설정합니다.
          $req .= $endline;

          // 내용을 추가해 보내어 줍니다.
          $req .= $sendQuery;
          ;

          // 해당 구글 서버와 연결을 시도합니다.
          $fsock = @fsockopen( "ssl://fcm.googleapis.com", 443 );

          // 구글 서버에 접속 실패한 경우.
          if( !$fsock )
          {
              echo "구글 서버에 접속 실패하였습니다.!";
              return;
          }

          // 데이터 보내기를 합니다.
          fwrite( $fsock, $req );


          // 데이터 받기를 위해 필요한 값들을 선언합니다.
          $headPassed = false;
          $TokenJson = "";


          // 데이터 받기가 완료될 때 까지 대기하면 데이터를 받아 출력합니다.
          while( !feof($fsock) )
          {

              // 한 줄 라인을 가지고 옵니다.
              $line = fgets($fsock, 128);

              // 아직 헤더는 아니지만, 헤더의 끝을 만난 경우, 헤더가 끝났음을 마킹하고, 종료합니다.
              if( $line == "\r\n" && !$headPassed )
              {
                  $headPassed = true;
                  continue;
              }

              // 헤더가 아닌 경우만, 값을 출력하도록 합니다.
              if( $headPassed )
              {
                  $TokenJson .= $line;
              }

          }

          // 연결을 닫아 주도록 합니다.
          fclose( $fsock );


          // 받은 결과를 반환해 주도록 합니다.
          return $TokenJson;


    }






  }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by 창업닉군
,

FCM에는 모바일에 필요한 다양한 서비스를 제공하고 있다. 그 중 가장 많이 사용하는 서비스 중 하나인 Cloud Messaging 서비스의 서버를 node.js를 통해, 제작해 보겠습니다. 이 문서는 비공개 키를 통해 SDK를 초기화해 send 메소드를 통해 보내기를 합니다. 만약 그렇지 않은 경우, 토큰을 받거나, 유지하는 기능까지 구현해야 할 수도 있습니다. 다른 방법으로 하려면 참고해 주시기 바랍니다.

선행작업으로, 안드로이드 기기에 메시지를 받을 앱이 깔려 있어야 합니다.

 

FCM Push notification (android)

서버에서 안드로이드로 메시지를 보내는 방법을 포스팅합니다. 파이어 베이스에서는 쉽다고 홍보하고 있지만, 프로그래머 대부분은 여기서 머리를 싸매게 됩니다. 일단 파이어 베이스 문서(공식)가 별로 자세하지..

nicgoon.tistory.com

 

요구사항 : node 6.0 이상

정식 문서
서버 환경 및 FCM : https://firebase.google.com/docs/cloud-messaging/server?authuser=0
서버에 Firebase Admin SDK 추가 : https://firebase.google.com/docs/admin/setup?authuser=0 .
보내기 요청 작성 : https://firebase.google.com/docs/cloud-messaging/send-message?authuser=0

 

 

1. Firebase Admin SDK  설치

관련 문서인 서버 Firebase Admin SDK 추가 문서를 읽어 보면 다양한 경우에 대한 SDK 서버 설치 관련 옵션이 존재 합니다. 우리는 node.js 로 설치 할 것이 므로, node.js 관련 부분만 보면 되겠습니다.

   1) firebase 관리자 설치.

   $ npm install firebase-admin --save

   2) sdk 초기화를 위한 비 공개 키 다운로드.

   먼저, 프로젝트 설정으로 이동합니다.

   서비스 계정 -> 새 비공개 키 생성을 차례로 선택해 줍니다.

새 비공개 키 생성 창이 뜨면 키 생성 버튼을 눌러 키를 생성합니다.

그럼 키가 다운로드 되는 데 이것을 적당한 위치에 저장합니다.

   3) 소스 추가. 위에서 확인한 내용을 토대로, 아래 소스에 값을 쉽게 넣을 수 있으리라 생각됩니다.

var admin = require('firebase-admin');

var serviceAccount = require('path/to/serviceAccountKey.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});

위 코드를 보면, Admin SDK 초기화 부분에, databaseURL: 'https://<DATABASE_NAME>.firebaseio.com' 부분이 있는데 위 코드에는 왜 빠져 있지 라고 생각하시는 분들이 있을 수 있습니다. 보내기 요청 승인 이라는 문서가 있는 데 이 문서는 지금처럼 자동으로 보내지 않는 경우 토큰으로 처리해야함을 설명하고 있는 문서 이며, 지금과 같이 Admin SDK를 사용하는 경우, Admin ADK를 초기화 하는 설명이 나와 있습니다. 이 부분에, 데이터 베이스 부분을 넣지 않고 설정하고 있습니다. 확인해 본 결과, 메시지를 보낼 때는 이 부분이 필요 없습니다.

 

2. 보내기

메시지 보내는 것은 보낼 메시지를 만드는 부분과 이를 보내는 부분을 구현하면됩니다.  보내는 방법은 개별기기에, 주제별, 조건별로 보낼 수 있습니다. 각각의 방법은 firebase 공식문서를 참고해 주시기 바랍니다. 여기서는 한 기기에 보내기만 합니다. 소스는 아래와 같으며, 설명은 불필요 할 것으로 보입니다.

// 보낼 메시지를 작성하는 부분 입니다.
var fcm_target_token = "cdtmyCPou2I:APA91bHYP7ltSi6Q_nd8lGVJnwrhYcHcQJIRFaseE494PYe1mQKBe1QfhW-8i_gEpJZqSM1XcWZrqkXEVxWt9BTGpQctJ_RVy9V3OZU-ltcITNpANsB0HsCa9gvRpNM3iOGKoDjOGeqa";
var fcm_message = {

  notification: {
    title: '시범 데이터 발송',
    body: '클라우드 메시지 전송이 잘 되는지 확인하기 위한, 메시지 입니다.'
  },
  data:{
    fileno:'44',
    style:'good 입니다요~'
  },
  token:fcm_target_token

};



// 메시지를 보내는 부분 입니다.
fcm_admin.messaging().send(fcm_message)
  .then(function( response ){
    console.log('보내기 성공 메시지:' + response);
  })
  .catch(function( error ){
    console.log( '보내기 실패 메시지:' + error );
  });

 

 

 

 

 

 

Posted by 창업닉군
,

서버에서 안드로이드로 메시지를 보내는 방법을 포스팅합니다. 파이어 베이스에서는 쉽다고 홍보하고 있지만, 프로그래머 대부분은 여기서 머리를 싸매게 됩니다. 일단 파이어 베이스 문서(공식)가 별로 자세하지 않고, 설명 띄엄 띄엄하고, 솔루션도 제공하지 않습니다. 따라서 가장 최신판 책을 한 권 구매하시기 바라며, 이 내용은 그저 트러블 해결 용도로 이용하시기 바랍니다.

참고 사항.

참고 사항 1. 메시지를 보낼 때, 앱이 켜져 있으면, 내부 앱에 메시지가 뿌려지고, 앱이 꺼져 있으면, 상단 알림으로, 메시지가 보내저 소리등이 나게 됩니다. (기본적으로.).

참고 사항 2. 설정에서 알림 받지 않기를 해도 앱이 켜져 있을 때는 알림을 받습니다. 꺼져 있을 때만, 받지 않습니다. 그러므로, 이 것을 이용해 챗팅을 구현해도 상관이 없습니다.

참고 사항 3. 알림을 받기로 허용하면, 앱을 한 번 실행한 뒤 부터 알림이 도착하기 시작합니다. (참고해 주세요).

 

1. FCM 에서 프로젝트 만들기.

   1) 계정 만들기. (생략).

     아마 별로 어려울 것이 없을 것이라 생각이 됩니다.

   2) 프로젝트 생성.

      이름을 잘 정해서 하나 만들어 주시기 바랍니다.

 

2. Android 앱 추가.

   1) Android 앱 등록.

      패키지 명을 잘 등록해 줍니다.

 

   2) 구성파일 다운로드.

      설명에도 나와 있지만, 프로젝트 보기로 전환하고, (중요), 다운로드 파일을 google-services.json 파일을 App 폴더 하위에 추가하도록 합니다.

 

   3) Firebase SDK 추가.

      이 부분은 설명은 참 쉽게 되어 있는 데 (추가하는 것 자체는 쉽습니다.). 입력값 그대로 넣으면 빨간 줄이 쭉쭉 그여질 수 있습니다. 구글 SDK가 업데이트 되면, Firebase SDK 업데이트도 다시 되어야 하는데, 파이어 베이스는 이런일에 둔감합니다. 그래서, 버전이 잘 안맞습니다. 그래서 트러블이 생길 수 있는 데, 이것들은 검색을 통해 확인해야 합니다.

설치할 때, 버전은 이 문서를 참고 하도록 합니다. : https://firebase.google.com/docs/android/setup?authuser=0

일단 시키는 대로 추가하고, 우상단 Sync now를 눌렀는데, 아래와 같이 트러블이 생깁니다.

저와 같이 트러블이 생기는 분은 아래와 같이 몇개의 모듈을 추가해 주면 해결됩니다.

implementation 'com.android.support:animated-vector-drawable:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'

* 그럼 아래와 같이 밑줄이 사라진 것을 볼 수 있습니다.

 

   4) 앱을 실행하여 설치확인

   이 부분은 일단 건너 뛰도록 합니다.

 

3. FCM을 사용할 수 있도록 서비스를 만들어 등록하기.

공식문서 : https://firebase.google.com/docs/cloud-messaging/android/client?authuser=0

FCM을 사용하려면, 해당 모듈을 등록하고, 서비스 클래스가 2개가 필요합니다.

   1) 조금전까지 설치했던, 모듈들은 모두 FCM Core 입니다. 코어는 파이어 베이스를 사용하기 위해 기본적으로 설치되어 있어야하는 것들 이고, 메시지를 사용하려면, app 수준 모듈에 아래와 같이 모듈을 설치 해줍니다.

   implementation 'com.google.firebase:firebase-messaging:17.3.4'

 

   2) MyFirebaseMessaginService.

   실제 메시지를 받는 서비스의 클래스 입니다. 위 이름이 예제 파일과 같은 이름인데, 바꾸지 않는 것이 좋습니다. 파이어 베이스를 몇 번해 보았지만, 바꾸지 않는 것을 권해 드립니다. 서비스를 만들 때, FirebaseMessagingService클래스를 상속해서 만들도록 합니다.

생성자 외 메소드는 모두 지웁니다. 그리고, Ctrl+o를 눌러, onNewToken, onMessageReceived 가상 메소드들을 재정의 하도록 합니다. (선택하면 자동완성됨).

onNewToken은 메시지에 사용될 토큰을 새로 발급받았을 때, 호출되는 메소드로 이 토큰은 각각의 기기를 식별해 사용하는 메소드 입니다. onMessageReceived 는 메시지를 받았을 때 호출되는 메소드 입니다. 아래는 해당 서비스의 소스 코드 입니다.

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    private static final String TAG = "FCM";

    public MyFirebaseMessagingService() {
    }

    // 새로운 토큰을 확인했을 때 호출되는 메소드.
    @Override
    public void onNewToken(String token) {
        super.onNewToken(token);

        // 토큰 정보를 출력합니다.
        Log.e(TAG, "onNewToken 호출됨: " + token);

    }


    // 새로운 메시지를 받았을 때 호출되는 메소드.
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);

        // 받은 메시지를 출력합니다.
        Log.e( TAG, "onMessageReceived 호출됨" + remoteMessage );

    }
}

 

   3) 서비스 xml등록.

우리가 위에서 서비스로 앱을 등록해 주었기에, 서비스를 xml에 등록할 필요가 없을 것 같지만, 그렇게 해두면 푸쉬 메시지를 받지 못합니다.  아래 코드를 확인해 푸쉬 메시지를 등록할 수 있게 해 줍니다.

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <service
            android:name=".MyFirebaseMessagingService"
            android:enabled="true"
            android:exported="true">

            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>

        </service>

   4) 퍼미션 등록

푸쉬 서비스를 이용하기 위해, internet 퍼미션을 등록합니다.

<uses-permission android:name="android.permission.INTERNET" />

 

4. 화면 레이아웃 만들기.

   이 부분은 적당히 만들어 주시 기 바라며, 굳이 만들 필요가 없을 수도 있습니다.

 

5. MainActivity 에  토큰관련 메소드 추가.

   아래 토큰을 받은 시점과 토큰을 받은 후 원하는 시점에, 토큰ID를 가지고 오는 메소드 입니다. (참조해서 쓰면됩니다.)

        // 토큰이 등록되는 시점에 호출되는 메소드 입니다.
        FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(this,

                new OnSuccessListener<InstanceIdResult>() {
                    @Override
                    public void onSuccess(InstanceIdResult instanceIdResult) {

                        String newToken = instanceIdResult.getToken();
                        Log.d( TAG, "새토큰" + newToken );

                    }
                }

        );



        // 버튼을 눌렀을 경우, 저장된 토큰을 가지고 오는 메소드를 설정합니다.
        Button btn_1 = findViewById(R.id.button);
        btn_1.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {

                String savedToken = FirebaseInstanceId.getInstance().getId();
                Log.d(TAG, "등록되어 있는 토큰ID:" + savedToken);



            }
        });

   

6. 메시지를 받았을 경우 처리하는 메소드 넣기.

   1) MyFirebaseMessagingServiced 서비스에서 메시지를 받은 경우 처리.

    // 새로운 메시지를 받았을 때 호출되는 메소드.
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);

        // 일단 받은 데이터 중, 내용만 가지고와 출력하는 메소드 입니다. (파이어 베이스 홈페이지에서 보내면 데이터는 값이 없을 수 있습니다.)
        String from = remoteMessage.getFrom();
        Log.d(TAG,
        "title:" + remoteMessage.getNotification().getTitle()
        + ", body:" + remoteMessage.getNotification().getBody()
        + ", data:" + remoteMessage.getData()
        );


        // 액티비티 쪽으로 메시지를 전달하는 메소드를 호출합니다.
        sendToActivity(
                getApplicationContext()
                , remoteMessage.getFrom()
                , remoteMessage.getNotification().getTitle()
                , remoteMessage.getNotification().getBody()
                , remoteMessage.getData().toString()
                );

    }



    // Activity 쪽으로 메소드를 전달하는 메소드 입니다.
    private void sendToActivity(Context context, String from, String title, String body, String contents ){


        Intent intent = new Intent(context, MainActivity.class);
        intent.putExtra("from", from);
        intent.putExtra("title", title);
        intent.putExtra("body", body);
        intent.putExtra("contents", contents);


        intent.addFlags(
                Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP
        );


        context.startActivity(intent);


    }

   2)  Activity에서 받은 메시지를 처리하는 경우.  (소스에 주석을 넣어 두었으므로, 참조하면되겠다.)

    // 서비스로 부터 인텐트를 받았을 때의 처리.
    @Override
    protected void onNewIntent(Intent intent) {
        println( "onNewIntent 호출됨" );

        // 인텐트를 받은 경우만, 값을 Activity로 전달하도록 합니다.
        if( intent != null )
        {
            processIntent( intent );
        }


        super.onNewIntent(intent);

    }



    // 인텐트를 처리하도록 합니다.
    private void processIntent( Intent intent ){

        String from = intent.getStringExtra("from");
        if( from == null )
        {

            // from 값이 없는 경우, 값을 전달하지 않습니다. (푸쉬 노티 메시지가 아닌것을 판단하고 처리하지 않는듯).
            Log.d( TAG, "보낸 곳이 없습니다." );
            return;

        }


        // 메시지를 받은 것우 처리를 합니다.
        Log.d( TAG, "여기서 메시지 응답 처리를 하면 됩니다." );


    }

 

7. 이렇게 하고, FCM 사이트로가 클라우드 메시지를 보내면, 메시지를 무사히 보낼 수 있습니다. 자세한 사항은 FCM의 클라우드 메시지를 확인해 보시면 되겠습니다.

 

 

 

 

   

Posted by 창업닉군
,

선행 작업.
파이어 베이스 프로젝트 생성 : http://nicgoon.tistory.com/171
안드로이드 프로젝트 생성 및 안드로이드 프로젝트에 파이어 베이스 추가 : http://nicgoon.tistory.com/172

 문서를 참고 하시기 바랍니다.

 

 

위 선행작업이 완료되었다면, 파이어 베이스로(https://console.firebase.google.com) 접속 합니다. 아래와 같은 창이 뜨면 자신이 설정할 프로젝트를 선택해 줍니다.

그럼 프로젝트 창이 뜨는 데, 왼쪽 아래의 Notification 항목을 선택해 줍니다.

그럼 아래와 같은 창을 만납니다. 일단 이 곳에서는 자신의 앱이 설치된 스마트폰에 메시지를 보낼 수 있습니다. 테스트 과정에 사용해 보기 좋으며, 이를 참고해서 추후 웹서버를 구성하면 좋습니다. 일단 클라이언트 부분을 완성해야 하므로, 아래에 표시된 문서 보기를 눌러 줍니다.

아래 화면이 나오면 조금 더 내려서, [ANDROID 설정] 버튼을 눌러줍니다.
바로 가기 주소 : https://firebase.google.com/docs/cloud-messaging/android/client

 

-> [firebase message service] 플러그인 추가.
앱 수준의 [Build.gradle] 에 플러그인을 추가하면, 되며, 차 후 다른 서비스의 플러그인을 추가할 때도, 이 곳에 플러그인을 추가하면 됩니다.

 

 

-> 메시지를 수신하고 처리하는 서비스와, 토큰을 관리하는 서비스를 추가한다.
    액티비티 아래 부분에 추가하는 것이 가장 적당하다.

 

-> 옵션 사항으로, 메시지가 왔을 때 메시지 리스트에 쌓을 스택 바에 표시될 아이콘에 관한 설정을 할 수 있다.
<Application> 태그 사이에 추가하고, 아이콘을 설정한 메타 태그 속 [android:resource=@] 값은 이미지 값을 설정해 둔다.

-> 토큰을 관리하는 [FirebaseInstanceIdService] 파일을 생성하고, 필요한 코드를 추가합니다.
이는 설명을 잘 읽어 보고, 아래 내용의 파일을 액티비티가 있는 폴더에 그대로 생성합니다.

https://github.com/firebase/quickstart-android/blob/master/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/MyFirebaseInstanceIDService.java#L35-L45

 

-> [MyFirebaseMessagingService.java] 파일 추가.
해당 문서에는 나와 있지 않지만, 위의 매니페스트에서 서비스가 실행됨을 정의했으므로, 당연히 파일을 추가해야 한다.
아래의 파일을 액티비티가 있는 폴더에 생성해 추가한다.

https://github.com/firebase/quickstart-android/blob/master/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/MyFirebaseMessagingService.java

 

이 파일을 추가 후 아래 표시될 아이콘을 변경해 주어야 한다.

 

아래 이미지 처럼 /App 폴더 속 [Build.gradle] 파일에 [compile 'com.firebase:firebase-jobdispatcher:0.6.0']을
추가해 줍니다.

 

마지막으로, 메인 액티비티가 있는 폴더에, 아래 파일을 추가해 주고, 실행하면됩니다.

https://github.com/firebase/quickstart-android/blob/master/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/MyJobService.java

 

-> 파이어 베이스 콘솔을 통해 메시지를 보냅니다.

여기까지하고 앱을 실행시키고, 메시지를 보내면, 메시지가 오는 것을 확인할 수 없습니다.
다만 Android Monitor에 찍힌 값을 보면 메시지가 왔을 때 본문을 확인할 수 있습니다.
( Android Monitor에서 [onMessageReceived]값을 검색어로 입력 하면 확인 가능.  )

 

-> 메시지 푸쉬 부분을 구현하기 위해, [MyFirebaseMessagingService.java] 파일의 [onMessageReceived]
파일의 코드를 수정합니다.

그리고 메시지를 보내면, 메시지가 오는 것을 확인할 수 있습니다.

'Android > FCM 연동' 카테고리의 다른 글

안드로이드 FCM push Message (2/3)  (0) 2017.08.27
안드로이드 FCM push Message (1/3)  (0) 2017.08.27
Posted by 창업닉군
,

선행되어야할 작업.

-> 파이어 베이스 프로젝트 생성 : http://nicgoon.tistory.com/171

 

이 포스트에서는 안드로이드 앱에 FCM을 추가하는 하는 작업을 합니다.
공식 문서( https://firebase.google.com/docs/android/setup )를 열어 함께 보며 작업 하시기 바랍니다.

 

먼저 [google-service.json] 파일을 다운 받습니다. 방법은 파이어 베이스에 로그인하고, 원하는 프로젝트를 선택합니다.
그리고, 아래 그림처럼 [프로젝트 설정]을 선택합니다.

아래와 같은 페이지가 나오면, [google-services.json] 파일을 다운 받은 후 잘 저장해 둡니다.

일단, 안드로이드 프로젝트를 생성하되 아무것도 없는 빈 문서를 생성합니다. (굳이 복잡할 필요가 없으므로....)

다운로드 받은 파일을 생성한 안드로이드 프로젝트에 [App/] 폴더 아래에 추가해 줍니다.

 

그리고, 코드들을 약간수 정해 주어야 하는데, 메인 액티비티 프로젝트 속에 있는 [Build.gradle] 파일을 열어,
classpath 'com.google.gms:google-services:3.1.0' 문자열을 추가합니다.

 

 

 [App] 폴더 속 [Build.gradle] 파일에는 아래와 같이 2줄을 추가한다.

 

 

 

마지막으로 안드로이드 스튜디오 오른쪽 상단의 [Sync Now] 를 클릭하면 모든 작업이 완료 됩니다. (아래 그림 참조).

'Android > FCM 연동' 카테고리의 다른 글

안드로이드 FCM push Message (3/3)  (0) 2017.08.28
안드로이드 FCM push Message (1/3)  (0) 2017.08.27
Posted by 창업닉군
,