Мне нужно отправить уведомления на несколько устройств.
Я могу отправить уведомление на одно устройство, используя следующий код:
var SENDER_ID = "xxxx";
string regId="xxx";
var SERVERKEY =xxx";
WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
tRequest.Method = "post";
tRequest.Headers.Add(string.Format("Authorization: key={0}", SERVERKEY));
tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));
tRequest.ContentType = "application/json";
var payload = new
{
to = regId,
priority = "high",
content_available = true,
data = new
{
body = "Test Massege",
title = "Test Title",
badge = 1
},
notification = new
{
body = "Test Massege",
title = "Test Title",
badge = 1,
sound = "default"
}
};
string postbody = JsonConvert.SerializeObject(payload).ToString();
Byte[] byteArray = Encoding.UTF8.GetBytes(postbody);
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())
{
if (dataStreamResponse != null) using (StreamReader tReader = new StreamReader(dataStreamResponse))
{
String sResponseFromServer = tReader.ReadToEnd();
}
}
}
}
Я пытался отправить на несколько устройств без успех. Вот код, который я использовал:
var SENDER_ID = "xxx";
var SERVERKEY = "xxx";
WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
tRequest.Method = "post";
tRequest.Headers.Add(string.Format("Authorization: key={0}", SERVERKEY));
tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));
tRequest.ContentType = "application/json";
List<string> Tokens = new List<string>();
Tokens.Add("xxx1");
Tokens.Add("xxx2");
Tokens.Add("xxx3");
Tokens.Add("xxx4");
string tokenjson = JsonConvert.SerializeObject(Tokens).ToString();
var payload = new
{
//to = ,
registration_ids = tokenjson,
priority = "high",
content_available = true,
data = new
{
body = "Test Massege",
title = "Test Title",
badge = 1
},
notification = new
{
body = "Test Massege",
title = "Test Title",
badge = 1,
sound = "default"
}
};
string postbody = JsonConvert.SerializeObject(payload).ToString();
Byte[] byteArray = Encoding.UTF8.GetBytes(postbody);
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())
{
if (dataStreamResponse != null) using (StreamReader tReader = new StreamReader(dataStreamResponse))
{
String sResponseFromServer = tReader.ReadToEnd();
}
}
}
}
Это приводит к сообщению об ошибке:
(400) Bad Request
Какое максимальное число устройств, которые я могу отправить в каждом запросе? Как правильно достичь моей цели?