Я использую FCM в своем приложении для Android и iOS. Клиентский код работает правильно, потому что из консоли Firebase я могу отправлять уведомления на обе платформы без каких-либо проблем. С моим кодом C# я могу успешно отправлять уведомления на устройства Android, но уведомления никогда не появляются на iPhone, если они напрямую не отправляются с консоли уведомлений Firebase. Я не знаю, что дает.Firebase Cloud Messaging и код сервера C#
C# код на стороне сервера
try
{
var applicationID = "application_id";
var senderId = "sender_id";
string deviceId = "device_id_of_reciever";
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 = "This is the message",
title = "This is the title",
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();
Response.Write(sResponseFromServer);
}
}
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
Уведомление не работает на iPhone с моей стороны сервера кодом, но я получаю хороший ответ от Firebase.
{
"multicast_id": 479608 XXXXXX529964,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [{
"message_id": "0:1467935842135743%a13567c6a13567c6"
}]
}
Любая помощь или предложения были бы действительно оценены.
Сообщения выглядят по-разному, когда они поступают непосредственно из firebase. gcm.message_id: 0: 1467938951987907% a13567c6XXXX67c6] % @ [aps: {alert = { body = "Это сообщение"; title = "Это название"; }; }, gcm.message_id: 0: 14679XXXX87907% a13567c6a1XXXXc6] сообщение получил ID сообщения: 0: 1467939XXXXX5% a13567c6a13567c6 % @ [google.c.a.c_l: why2, google.c.a.e: 1, АПС: { оповещение = why1; }, gcm.ne: 1, google.cac_id: 50607XXXXXX957125, google.caudt: 0, gcm.message_id: 0: 14679XXXX18215% a13567c6a1XXX7c6, google.cats: 146XXXXX32] –
привет, вы можете рассказать мне, как вы отправляете deviceId ? –