FCM 토큰 사용하여 사용자에게 push 알림 보내기 (1) - 토큰 발급은 어떻게 하는데 ? (flutter 웹앱)

like0·2022년 4월 1일
0

사실 토큰 발급 자체는 어렵지 않았다!

- import firebase_messaging

import 'package:firebase_messaging/firebase_messaging.dart';

- FCM 토큰 발급코드

 FirebaseMessaging.instance
        .getToken(
            vapidKey:
                '여기에는 어떤 값 넣지 ?')             

vapidKey 자리에는 어떤 값을 넣어야 하는가 ?

firebase에서 프로젝트를 만들면,
프로젝트 설정 -> 클라우드 메시징 -> Cloud Messaging API의 서버키 를 vapidKey에 넣어주었다.

//ios나 mac의 경우
String? token = await FirebaseMessaging.instance.getAPNSToken();

코드인 것 같다. (아직 ios를 위한 토큰을 발급을 안해서, 추후에 더 추가해봐야겠다!)


getAPNSToken()함수의 설명을 읽어보면, FCM service를 사용하지 않을 때 매세지를 보내고 싶다면 필요하다고 되어있다.
따라서 FCM token을 사용하기 위해서는 해당 함수를 쓰면 안될 것 같다! (실제로도 에러가 났다)

=> 결론 : FCM token발급은 OS에 관계없이 위에서 나타낸 FCM토큰 발급 코드를 사용한다!

참고
참고

token은 user마다 하나씩 db에 저장되어야 나중에 user의 기기로 Push 알림을 보낼 수 있다. (토큰 : user 기기 = 1: 1)

그렇다면, 발급된 token이 db에 저장되는 과정은 무엇일까 ?

  1. 우선 front에 넘겨주자
    InAppWebView에는
    initialUrlRequest를 통해 해당 flutter 웹앱이 처음으로 띄울 url을 나타낼 수 있다 (본인은 처음 띄울 url이 로그인 페이지였다.)
initialUrlRequest: URLRequest(url: Uri.parse("~~~~~")),

이 때, url 뒤에 발급했던 fcm token을 파라미터로 붙여서 넘겨준다.
fcm token을 뒤에 붙인 url의 모습은 다음과 같다.

예) https://www.google.co.kr/?token=~~~~~~~~~~~~~
  1. front-end는 파라미터로 받은 token값을 로그인할 때, back-end로 해당 user의 token값으로 넘겨준다.
  2. back-end에서는 해당 token값을 db에 저장한다.
  • 여러가지 방법이 있겠지만, 해당 과정을 통해 flutter에서 발급한 fcm token을 db에 저장했다.
profile
배우고 성장하는 개발자가 되기!

0개의 댓글