簡體   English   中英

在Android或iOS中向特定用戶發送推送通知

[英]Send push notification to particular user in android or ios

我使用以下給定代碼通過Firebase成功將推送通知發送到了從server(.net C#)到android設備的所有設備:

var result = "-1";
            var webAddr = "https://fcm.googleapis.com/fcm/send";
            var serverKey = "xxxxxxx";
            var senderId  = "xxxxxxx";
            var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
            httpWebRequest.ContentType = "application/json";
            httpWebRequest.Headers.Add(HttpRequestHeader.Authorization, "key="+ serverKey);
            httpWebRequest.Headers.Add(string.Format("Sender: id={0}", senderId)); 
            httpWebRequest.Method = "POST";
            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                string strNJson = @"{
                    ""to"": ""/topics/ServiceNow"",
                    ""data"": {
                        ""ShortDesc"": ""Some short desc"",
                        ""IncidentNo"": ""any number"",
                        ""Description"": ""detail desc""
  },
  ""notification"": {
                ""title"": "": Incident No. number"",
    ""text"": ""This is Notification"",
""sound"":""default""
  }
        }";
                streamWriter.Write(strNJson);
                streamWriter.Flush();
            }

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                result = streamReader.ReadToEnd();
            }
            return result;

現在,我想向特定或單個android設備發送推送通知。 請在這方面幫助我。

謝謝。

這是您要填充的JSON字符串中的“ to”字段。

您需要為要向其發送消息的每個設備都具有FCM令牌。 我只在服務器端工作過,但是在這里有更多信息:

https://firebase.google.com/docs/cloud-messaging/android/first-message

要將消息發送到單個設備,您需要從中收集設備令牌( AndroidiOS )。 然后可以將該令牌用於FCM API的JSON負載中。 文檔中顯示很多示例。 還有關於HTTP 1.0版API更全面的文檔在這里 構建有效負載時,應將令牌添加到“令牌”鍵中:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    }
  }
}

看來您使用的是較舊的API(使用“ to”字段),所以建議您改用新的API。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM