0

有沒有什麼方法可以播放FCM通知 - 加上圖像 - 對所有設備,使用C#?如何將帶有圖像的FCM通知發送到使用C#的所有設備?

而不是發送到一個特定的設備ID,我想包括一個圖像,並通過Firebase通知服務發送到所有設備。

我用這個代碼將數據發送到一個單一的用戶設備,但沒有圖像:

public string SendNotificationInstaTips(string firebaseID, 
     string notTitle 
     string notText, 
     string notContent) 
    { 

     try 
     { 
      string SERVER_API_KEY = "AIza..QXq5OQCaM"; 
      string SENDER_ID = "162..09";     
      string REGISTERATION_ID = firebaseID; 

      WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); 
      tRequest.Method = "post"; 
      tRequest.ContentType = "application/json"; 

      var data = new 
      { 
       to = REGISTERATION_ID, 

       data = new 
       { 
        title = notTitle, 
        text = notText 
        content = notContent 
       } 
      }; 
      var serializer = new JavaScriptSerializer(); 
      var json = serializer.Serialize(data); 
      Byte[] byteArray = Encoding.UTF8.GetBytes(json); 
      tRequest.Headers.Add(string.Format("Authorization: key={0}", SERVER_API_KEY)); 
      tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID)); 
      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(); 
          return sResponseFromServer; 
         } 
        } 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      return ex.Message; 
     } 
    } 

回答

0

我一直對這個用PHP,但它應該是在C#相似。 使用「註冊ID」,而不是在你的代碼「到」

var data = new 
     { 
      to = REGISTERATION_ID, //Change this line 

      data = new 
      { 
       title = notTitle, 
       text = notText 
       content = notContent 
      } 
     }; 
var data = new 
     { 
      registration_ids = {"AIza..QXq5OQCaM","An2i..QXq5OQCaM", .....}, 

      data = new 
      { 
       title = notTitle, 
       text = notText 
       content = notContent 
      } 
     }; 

希望這有助於

+0

我沒有全部ID –

+0

這並不真正回答這個問題。主要關心的是如何將* images *發送給所有設備。 –

+0

那麼如果你想發送消息到多個設備,這是方式。但對於圖像,你不能。您可以改爲發送圖片的網址(請參閱AL的答案) – Exairie

0

這不是一般的用例的推送通知。對於FCM,強烈建議不要發送圖像,主要是因爲有效載荷大小限制 - notification爲2KB,data爲4KB。

我建議使用Firebase Storage來存儲圖像,然後在需要時將其下載到設備中,只需在推送通知中發送下載URL,而不是作爲解決方法。

有關如何發送到多個設備的問題,請參閱我的answer here。我會建議你的使用案例使用Topic Messaging

相關問題