如何使用 C# 向所有设备发送带有图像的 FCM 通知?
Posted
技术标签:
【中文标题】如何使用 C# 向所有设备发送带有图像的 FCM 通知?【英文标题】:How to send FCM notification with an image to all devices using C#? 【发布时间】:2017-02-22 10:00:23 【问题描述】:有没有办法使用 C# 向所有设备广播 FCM 通知 -加上图像?
我想包含一张图片并通过 Firebase 通知服务发送到所有设备,而不是发送到一个特定的设备 ID。
我使用此代码将数据发送到单个用户设备,但没有图像:
public string SendNotificationInstaTips(string firebaseID,
string notTitle
string notText,
string notContent)
try
string SERVER_API_KEY = "AIza..QXq5OQCaM";
string SENDER_ID = "162..09";
string REGISTERATION_ID = firebaseID;
WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
tRequest.Method = "post";
tRequest.ContentType = "application/json";
var data = new
to = REGISTERATION_ID,
data = new
title = notTitle,
text = notText
content = notContent
;
var serializer = new javascriptSerializer();
var json = serializer.Serialize(data);
Byte[] byteArray = Encoding.UTF8.GetBytes(json);
tRequest.Headers.Add(string.Format("Authorization: key=0", SERVER_API_KEY));
tRequest.Headers.Add(string.Format("Sender: id=0", SENDER_ID));
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();
return sResponseFromServer;
catch (Exception ex)
return ex.Message;
【问题讨论】:
是否找到任何解决方案向所有用户发送数据? 是否找到任何解决方案向所有用户发送数据? 【参考方案1】:我一直在使用 php 来解决这个问题,但在 C# 中应该是类似的。 在您的代码中使用“registration ids”而不是“to”
var data = new
to = REGISTERATION_ID, //Change this line
data = new
title = notTitle,
text = notText
content = notContent
;
var data = new
registration_ids = "AIza..QXq5OQCaM","An2i..QXq5OQCaM", .....,
data = new
title = notTitle,
text = notText
content = notContent
;
希望对你有帮助
【讨论】:
我没有所有的 ID 这并不能真正回答问题。主要关心的是如何将图像发送到所有设备。 如果您想将消息发送到多个设备,这就是方法。但是对于图像,你不能。您可以改为发送图片的网址(请参阅 AL 的回答)【参考方案2】:这不是推送通知的常见用例。对于 FCM,强烈建议不要通过图像发送,主要是因为负载大小限制 - notification
为 2KB,data
为 4KB。
我建议使用Firebase Storage 存储图像,然后在需要时将其下载到设备中,只需在推送通知中发送下载 URL 作为解决方法。
有关如何发送到多个设备的问题,请参阅我的answer here。我建议您使用Topic Messaging。
【讨论】:
以上是关于如何使用 C# 向所有设备发送带有图像的 FCM 通知?的主要内容,如果未能解决你的问题,请参考以下文章
使用 php 向 ios 设备发送带有 fcm 令牌的远程通知
在 C#.net 中向多个设备(但不是所有设备)发送 FCM 通知
如何使用 google api 向多个设备发送 FCM 推送通知?