【发布时间】:2017-01-30 09:15:23
【问题描述】:
我想在单个 fcm 请求中向多个设备发送通知。 我的通知文本对于所有设备都是相同的。我必须同时向所有用户发送超过 10000 个通知,并且文本是相同的,所以我想以最小 fcm 请求发送所有通知。 我正在使用 c# asmx 服务。 听到是我的代码。
string regid="fcm_reg_id1,fcm_reg_id2" 像这样。
string applicationID = "abcd";
字符串 SENDER_ID = "123456";
string regid="c_Z5yRoj4TY:APA91bGry2g_CIA1xaRy_LscxOvFX6YHqasKA96TjpG6yi1yytNyM5rtGL6DgxjGMSE5c74d7VdSL6W8zxO1ixVMlpVMwdgcrsGUWV0VfdbddC2XD","c_Z5yRoj4TY:APA91bGry2g_CIA1xaRy_LscxOvFX6YHqasKA96TjpG6yi1yytNyM5rtGL6DgxjGMSE5c74d7";
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("https://fcm.googleapis.com/fcm/send");
httpWebRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
httpWebRequest.Method = "POST";
String collaps_key = "Score_update";
string json = "collapse_key=abcd" + "&data.header=cricket®istration_id=" + regId + "&data.notificationId=" + notificationId + "&data.message=" + msg;
httpWebRequest.Headers.Add(string.Format("Authorization: key={0}", applicationID));
httpWebRequest.Headers.Add(string.Format("Sender: key={0}", SENDER_ID));
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
//Console.WriteLine(json);
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
using (HttpWebResponse httpResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
Console.WriteLine(result);
retmsgid = result.ToString();
if (retmsgid.Trim() != "")
{
ResponceString = result.ToString();
string[] msgsplits = retmsgid.Split(',');
string[] msg1 = msgsplits[0].ToString().Split(':');
ReturnMessageId = msg1[1].ToString();
}
else
{
ReturnMessageId = "0";
}
}
httpResponse.Close();
httpResponse.Dispose();
httpWebRequest = null;
}
}
【问题讨论】:
-
您可以使用 IMEI 号码从 Web 执行此操作(需要在您的后端注册 IMEI 号码)。因此,您需要使用移动设备上的网络服务发布消息。现在您可以使用已注册 IMEI 号码的设备从网络广播您的消息。
-
我想在上面代码中的单个请求中发送多个通知我想添加多个注册ID并发送它。
标签: android notifications