[英]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
要將消息發送到單個設備,您需要從中收集設備令牌( Android , iOS )。 然后可以將該令牌用於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.