nueog

[C#] 웹서버에서 Android 앱으로 FCM 전송 본문

Web

[C#] 웹서버에서 Android 앱으로 FCM 전송

nueog 2022. 6. 2. 15:16
반응형

ASP.net 환경에서 만든 웹 어플리케이션에서 특정 상황에서 android 앱으로 FCM 신호를 보내줘야하는 상황이 생겼다.

FCM 을 보낼 때는 페이로드에 형식을 지켜서 보내주면 된다.

나는 Notification 이라는 클래스를 만들어서 사용했다.

 

public class Notification
    {
        public string SendNotification(string DeviceToken, string title, string msg)
        {
            var result = "-1";
            var httpWebRequest = (HttpWebRequest)WebRequest.Create(NumDefine.webAddr); //https://fcm.googleapis.com/fcm/send
            httpWebRequest.ContentType = "application/json";
            httpWebRequest.Headers.Add(string.Format("Authorization: key={0}", NumDefine.serverKey)); //firebase 등록 페이지에서 가져옴
            httpWebRequest.Headers.Add(string.Format("Sender: id={0}", NumDefine.senderId)); //firebase 등록 페이지에서 가져옴
            httpWebRequest.Method = "POST";

            var payload = new
            {
                to = DeviceToken,
                priority = "high",
                content_available = true,
                notification = new
                {
                    body = msg,
                    title = title
                },
            };
            var serializer = new JavaScriptSerializer();
            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                string json = serializer.Serialize(payload);
                streamWriter.Write(json);
                streamWriter.Flush();
            }

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                result = streamReader.ReadToEnd();
            }
            return result;
        }
    }

 

이 코드에서 필요한 serverKey와 senderId는 firebase 앱 등록 페이지에서 가져올 수 있다.

 

끝!

반응형