有一种方法可以发送在Firebase云消息传递创建消息页面中出现的所有完整选项。
有一种方法可以发送在Firebase云消息传递创建消息页面中出现的所有完整选项。
我在asp.net MVC 5中有一个项目,我需要将所有选项添加到我的客户端应用程序中,即向Android和iOS应用程序发送推送通知。为了这个场景,我创建了一个类似于Firebase云消息传递的页面,代码如下:
private static string SendPushNotification() { string response; try { string serverKey = "##########"; string senderId = "#############"; string deviceId = "//topics/all"; 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 = "Greetings", title = "Augsburg", sound = "Enabled" } }; var serializer = new JavaScriptSerializer(); var json = serializer.Serialize(data); Byte[] byteArray = Encoding.UTF8.GetBytes(json); tRequest.Headers.Add(string.Format("Authorization: key={0}", serverKey)); 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 = sResponseFromServer; } } } } } catch (Exception ex) { response = ex.Message; } return response; }
所以我的问题是:
1. 我是否可以将所有这些选项发送到我的HTTP请求中?
2. 是否可以稍后发送?我也需要配置这个选项。
3. 目标用户选项如何设置?
我是否可以通过提供参数来使用HTTP请求来完成这些操作?
问题的原因是在Firebase云消息传递(Firebase Cloud Messaging)的创建消息页面中,并不是所有选项都能发送。下面是原因和解决方法的整理:
1. 并非所有选项都能发送,对于大多数文本字段,可以使用以下方式(参考HTTP参考文档):
- 消息正文:body
- 消息标签:无法发送,这只是Firebase控制台使用的标签。
- 传递日期:参考解决方法2。
- 用户分段:参考解决方法3。
- 消息标题:title
- Android通知渠道名称:android_channel_id
3. 用户分段目前还不可用。
希望以后在提问时避免在一个帖子中提出多个问题。谢谢!