2016-06-05 1 views
1

J'ai essayé d'utiliser ce code que j'ai obtenu sur ce site. Il retourne juste (succès: faux) et je ne sais pas pourquoi AndroidFCMPushNotificationStatus Class pour renvoyer le flux à partir du serveur FCM. Link of the Code I try it.J'ai besoin d'envoyer une notification à mobile en utilisant le message cloud firebase mon service construit dans WCF api

public AndroidFCMPushNotificationStatus SendNotification(string serverApiKey, string senderId, string deviceId, string message) 
    { 
     AndroidFCMPushNotificationStatus result = new AndroidFCMPushNotificationStatus(); 

     try 
     { 
      result.Successful = false; 
      result.Error = null; 

      var value = message; 
      WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); 
      tRequest.Method = "post"; 
      tRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; 
      tRequest.Headers.Add(string.Format("Authorization: key={0}", serverApiKey)); 
      tRequest.Headers.Add(string.Format("Sender: id={0}", senderId)); 

      string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.message=" + value 
       + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + deviceId + ""; 

      Byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
      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(); 
          result.Response = sResponseFromServer; 
         } 
        } 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      result.Successful = false; 
      result.Response = null; 
      result.Error = ex; 
     } 

     return result; 
    } 


    public class AndroidFCMPushNotificationStatus 
    { 
     public bool Successful 
     { 
      get; 
      set; 
     } 

     public string Response 
     { 
      get; 
      set; 
     } 
     public Exception Error 
     { 
      get; 
      set; 
     } 
    } 

Répondre

1

Je trouve la réponse de ce problème dans d'autres questions. La solution utilise des types anonymes puis la convertit en Json par JavaScriptSerializer. Vous pouvez le lire dans ce link.