2016-07-08 3 views
3

Android 및 iOS 앱에서 FCM을 사용하고 있습니다. Firebase 콘솔에서 어떤 문제없이 두 플랫폼에 알림을 보낼 수 있기 때문에 클라이언트 측 코드가 올바르게 작동합니다. 내 C# 코드를 사용하면 Android 기반 장치로 알림을 성공적으로 보낼 수 있지만 Firebase 알림 콘솔에서 직접 수신하지 않는 한 알림은 iPhone에 표시되지 않습니다. 나는 무엇이 제공되는지 모른다.Firebase 클라우드 메시징 및 C# 서버 사이드 코드

C# 서버 측 코드

try 
{ 
    var applicationID = "application_id"; 
    var senderId = "sender_id"; 
    string deviceId = "device_id_of_reciever"; 
    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 = "This is the message", 
      title = "This is the title", 
      icon = "myicon" 
     } 
    }; 

    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(); 
       Response.Write(sResponseFromServer); 
      } 
     } 
    } 
} 
catch (Exception ex) 
{ 
    Response.Write(ex.Message); 
} 

알림 내 서버 측 코드와 함께 아이폰에서 작동하지 않습니다하지만 난 중포 기지에서 좋은 반응을 얻을.

{ 
    "multicast_id": 479608 XXXXXX529964, 
    "success": 1, 
    "failure": 0, 
    "canonical_ids": 0, 
    "results": [{ 
     "message_id": "0:1467935842135743%a13567c6a13567c6" 
    }] 
} 

도움이나 제안이 있으면 정말 감사하겠습니다.

+0

메시지가 firebase에서 직접 왔을 때 메시지가 다르게 보입니다. gcm.message_id : 0 : 1467938951987907 % a13567c6XXXX67c6] % @ [aps : {alert = { body = "이것은 메시지입니다."; title = "이것은 제목입니다."; }; } gcm.message_id 0 : 14679XXXX87907 % a13567c6a1XXXXc6] 받았다 메시지의 메시지 ID 0 : 1467939XXXXX5 % a13567c6a13567c6 %의 @ [google.c.a.c_l : why2, google.c.a.e : 1, APS {= why1 경고; }, gcm.ne : 1, google.cac_id : 50607XXXXXX957125, google.caudt : 0, gcm.message_id : 0 : 14679XXXX18215 % a13567c6a1XXX7c6, google.cats : 146XXXXX32] –

+0

안녕하세요. ? –

답변

4

FCM 요청에서 우선 순위 필드를 높음으로 설정해보십시오.

예 :

var data = new 
{ 
    to = deviceId, 
    notification = new 
    { 
     body = "This is the message", 
     title = "This is the title", 
     icon = "myicon" 
    }, 
    priority = "high" 
}; 

주 개발에 그 사용하여 높은 우선 순위를 잘하지만 사용자가 채팅 메시지에 대한 응답과 같은 조치를 취할 것으로 예상 될 때 생산에만 사용되어야하지만.

+0

나는 정확한 답을 표시했다. 필자의 경우 우선 순위를 10 (우선 순위 = 10)으로 설정하고 모두 양호했다. 제공된 대답은 매우 도움이되었습니다. 아서 감사합니다. –

관련 문제