当前位置: 首页 > 知识库问答 >
问题:

C#中的Firebase云消息传递

郭修平
2023-03-14

我试图从C#中的服务器发送推送通知,我使用了正确的注册令牌和API密钥,但仍然得到以下响应。

{"multicast_id":7864311304033595507,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}

我按照这个网址来实现这个解决方案通过C#使用FCM(Firebase云消息传递)发送推送到Android

目前,我正在尝试向单个设备发送通知,但也希望同时向多个设备发送通知,我使用了url中给出的to:“/topics/all”,但它不起作用。如果我必须同时向多个设备发送通知,我该怎么办?

这是我的密码

try
      {

          string applicationID = "SERVER_KEY ";

          string senderId = "SENDER_ID";

          string deviceId = "ba92be2da78e7285";

          WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
          tRequest.Method = "post";
          tRequest.ContentType = "application/json";
          var data = new
          {
              //to = deviceId,
              to = deviceId,
              notification = new
              {
                  body = "Bring your existing apps and games to the Windows Store with the Desktop Bridge",
                  title = "Bridge",
                  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}", 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();
                          string str = sResponseFromServer;
                      }
                  }
              }
          }
      }
      catch (Exception ex)
      {
          string str = ex.Message;
      }   

共有1个答案

卢聪
2023-03-14

我的问题解决了。我使用的设备id与注册令牌id不同。因此我必须使用由FirebaseInstanceId.getInstance().getToken()方法返回的注册令牌id。代码的其余部分和我发布的问题相同。

 类似资料:
  • 我必须在SpringJava中为多层架构制作一个RESTAPI,其中需要为Firebase云消息传递(FCM)构建DAO、控制器和服务管理器,以向android应用程序发送推送通知消息,但我无法在Java中配置服务器以向设备发送通知。我怎么能?

  • 我也在尝试使用node。js和firebase管理员向iOS设备发送推送通知。然而,我遇到了这个错误: 错误发送消息:{错误:请求包含一个无效的参数。在Firebase MessagingError。错误(本机)在Firebase MessagingError。Firebase Error[作为构造函数](/user_code/node_modules/fire base-admin/lib/ut

  • FCM服务未向我的iOS应用程序发送消息。 > App CAN成功接收APNs令牌和实例ID令牌 App CAN使用推送通知实用程序利用. p8令牌在后台成功接收来自APN的推送 #2中使用的相同APNs密钥上传到Firebase控制台 应用程序无法接收Firebase控制台中Notification Composer发送的消息,也无法使用CURL请求接收消息。 应用程序在通过FCM发送时不显示任

  • 在我们的项目中,我们使用Firebase云消息传递来进行推送通知,我们遇到了消息重复的问题。我们过程如下所示: xamarin.firebase.ios.CloudMessaging 3.1.2 xamarin.firebase.ios.instanceID 3.2.1 xamarin.firebase.ios.core 5.1.3 订阅用户主题推荐 发送主题订阅者请求的通知 null 但是,当用

  • 我想使用谷歌的Firebase为网络构建一个消息应用程序。在这个应用程序中,用户应该向/从其他用户发送和接收消息。我检查了谷歌的Firebase网站,但我迷路了。你能告诉我从哪里开始吗?你能给我看任何与Firebase网络消息相关的教程或类似的东西吗?我欢迎任何建议。谢谢。

  • 在Firebase Cloud Messaging(FCM)中是否有方法查看成功发送和失败推送通知/消息的数量?我知道我可以只使用Firebase通知,但我必须使用它们的控制台发送推送通知,这对于我的用例来说是不实际的。 谷歌在此页面上解释了如何访问andoid的统计数据。但iOS也有办法吗?