iT邦幫忙

0

C#後台FCM推播IOS沒收到訊息

用C#寫了一段後台利用FCM推播的code
回傳的訊息

{"message_id":7638543291219000886}

只有收到這個回應,但是我的手機並沒有收到推播/images/emoticon/emoticon02.gif

 try
            {
                //伺服器
                string applicationID = "AIzaSyBhYzPkQgYND6P5cpLvEMoTUbJpgJeks";
                string senderId = "968899743755";
                string deviceId = "/topics/ios";
               
                WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
                tRequest.Method = "post";
                tRequest.ContentType = "application/json";
                var data = new
                {
                    to = deviceId,
                    notification = new
                    {
                        body = "test",
                        title = "test",
                        sound = "default"
                    }
                };
                var serializer = new JavaScriptSerializer();
                var json = serializer.Serialize(data);
                Byte[] byteArray = Encoding.UTF8.GetBytes(json);
                tRequest.Headers.Add(string.Format("Authorization: key={0}", applicationID));
                tRequest.Headers.Add(string.Format("Sender: id={0}", senderId));
                tRequest.ContentLength = byteArray.Length;
                using (Stream dataStream = tRequest.GetRequestStream())
                {
                    dataStream.Write(byteArray, 0, byteArray.Length);
                    using (WebResponse tResponse = tRequest.GetResponse())
                    {
                        using (Stream dataStreamResponse = tResponse.GetResponseStream())
                        {
                            using (StreamReader tReader = new StreamReader(dataStreamResponse))
                            {
                                String sResponseFromServer = tReader.ReadToEnd();
                                string str = sResponseFromServer;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string str = ex.Message;
            }

用FCM平台手動推播可以成功

使用以上的CODE有回傳成功的訊息,但手機沒收到

麻煩有經驗的大哥幫我解答了

看更多先前的討論...收起先前的討論...
babyhello iT邦新手 5 級 ‧ 2019-05-21 10:19:38 檢舉
FCM 後台可以測試送推播,手機收的到嗎??
babyhello iT邦新手 5 級 ‧ 2019-05-21 10:19:38 檢舉
測看看是不是手機無法收到推播
可以!FCM後台測試可以正常收到推播
dragonH iT邦大師 7 級 ‧ 2019-05-21 14:24:29 檢舉
你可以比對看看

後台推播 跟 你 C#的推播

資料結構長的一不一樣

給你幾個可能跟你問題有關的stackflow參考

https://stackoverflow.com/questions/46057325/not-receiving-firebase-cloud-messages-sent-via-c-sharp

https://stackoverflow.com/questions/47747163/response-success-but-fcm-notification-not-received-on-device

https://stackoverflow.com/questions/38257160/firebase-cloud-messaging-and-c-sharp-server-side-code
非常感謝你的回答,但以上這幾篇我都有看過了,每種方法都嘗試過,還是無法解決
順帶一提,因為FCM平台的手動推播,手機是可以收到的,應該不會是我的swift code出問題了吧?
dragonH iT邦大師 7 級 ‧ 2019-05-21 15:35:43 檢舉
我覺得不太可能

畢竟如果有問題

應該連FCM手動推播都收不到才對

還有一個辦法是

在app那把收到的 fcm data 都log出來

或許是有收到資料但是資料有些問題也說不定
這個方法想了好久,但是不知道要在哪邊print出推播資料...
dragonH iT邦大師 7 級 ‧ 2019-05-21 19:38:58 檢舉
func applicationReceivedRemoteMessage(_ remoteMessage: FIRMessagingRemoteMessage) {
print(remoteMessage.appData)
}
看有沒有類似的東西

參考:
https://www.appcoda.com.tw/firebase-push-notifications/

尚未有邦友回答

立即登入回答