2016-07-04 12 views

Antwort

10

C# Server Side-Code Für Firebase Cloud Messaging

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Net; 
using System.Text; 
using System.Web; 
using System.Web.Script.Serialization; 

namespace Sch_WCFApplication 
{ 
    public class PushNotification 
    { 
     public PushNotification(Plobj obj) 
     { 
      try 
      {  
       var applicationID = "AIza---------4GcVJj4dI"; 

       var senderId = "57-------55"; 

       string deviceId = "euxqdp------ioIdL87abVL"; 

       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 = obj.Message, 

         title = obj.TagMsg, 

         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(); 

           string str = sResponseFromServer; 

          }  
         }  
        }  
       }  
      }   

      catch (Exception ex) 
      { 

       string str = ex.Message; 

      }   

     } 

    } 
} 

apikey und SenderID, Sie erhalten hier --------- wie folgt (Bilder unten) (gehen Sie zu Ihre Feuerbasis App)

Step. 1

Step. 2

Step. 3

+3

wo aus der Geräte-ID zu bekommen? –

+0

Es ist ein Token, das mit einer Methode FirebaseInstanceId.getInstance() generiert wurde. GetToken() in einem Dienst –

+0

Das ist herausgefunden .. der Dienst ist FirebaseInstanceIdService. Außerdem gibt tRequest.GetResponse() eine Fehlermeldung aus "Der Remote-Server hat einen Fehler zurückgegeben: (401) Nicht autorisiert." Fehler, auch nachdem das, was hier gesagt wurde-> http://stackoverflow.com/questions/10205854/error-the-remote-server-returned-an-error-401-unauthorized Andere Lösungen? –

0

Ich glaube nicht Es gibt Änderungen in der Art, wie Sie Push-Benachrichtigungen senden. In FCM auch, werden Sie HTTP-POST-Anfrage auf die gleiche Weise für GCM tat machen:

https://fcm.googleapis.com/fcm/send 
Content-Type:application/json 
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA 

{ "data": { 
    "score": "5x1", 
    "time": "15:10" 
    }, 
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..." 
} 

über FCM Server für weitere Informationen lesen.

Die einzige Änderung, die ich jetzt sehen konnte, ist die Ziel-URL. Zeitraum.

1

Hier ist meine VbScript Probe für die vb vorzieht:

//Create Json body 
posturl="https://fcm.googleapis.com/fcm/send" 
body=body & "{ ""notification"": {" 
body=body & """title"": ""Your Title""," 
body=body & """text"": ""Your Text""," 
body=body & "}," 
body=body & """to"" : ""target Token""}" 

//Set Headers :Content Type and server key 
set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP") 
xmlhttp.Open "POST",posturl,false 
xmlhttp.setRequestHeader "Content-Type", "application/json" 
xmlhttp.setRequestHeader "Authorization", "Your Server key" 

xmlhttp.send body 
result= xmlhttp.responseText 
//response.write result to check Firebase response 
Set xmlhttp = nothing 
Verwandte Themen