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

如何使用C创建推送通知(FCM)#

胡高寒
2023-03-14

我编写了一个RESTAPI。NET Core现在需要创建一个推送通知到Firebase Cloud Messaging(FCM)。对于测试,我使用Firebase控制台,但我需要通过编程来完成。我已经通过谷歌浏览了Firebase的文档和一些例子,但我更困惑了。

我认为可以通过常规Http创建消息,但有人可以发布一个简单的工作示例以便我可以拿起它吗?或者也许,我的理解完全错误?

共有2个答案

江德海
2023-03-14

具有NET Core您可以将此轻量级库用于FCM推送通知和APN HTTP/2推送通知:

Install-Package CorePush

然后对于Firebase:

using (var fcm = new FcmSender(serverKey, senderId))
{
    await fcm.SendAsync(deviceToken, notification);
}

或APN:

using (var apn = new ApnSender(privateKey, keyId, teamId, appbundleId, server)) 
{
    await apn.SendAsync(deviceToken, notification);
}
艾志尚
2023-03-14

有些人也喜欢这个问题,所以想到提供我实现的解决方案,认为它可能会帮助其他人。如果您有任何问题,请随时提问。

如何获取服务器密钥:这是一个有帮助的问题链接。

Firebase云消息文档可在此处找到。

public class FirebaseNotificationModel
{
    [JsonProperty(PropertyName = "to")]
    public string To { get; set; }

    [JsonProperty(PropertyName = "notification")]
    public NotificationModel Notification { get; set; }
}


using System.Net.Http;
using System.Text;
public static async void Send(FirebaseNotificationModel firebaseModel)
{
    HttpRequestMessage httpRequest = null;
    HttpClient httpClient = null;

    var authorizationKey = string.Format("key={0}", "YourFirebaseServerKey");
    var jsonBody = SerializationHelper.SerializeObject(firebaseModel);

    try
    {
        httpRequest = new HttpRequestMessage(HttpMethod.Post, "https://fcm.googleapis.com/fcm/send");

        httpRequest.Headers.TryAddWithoutValidation("Authorization", authorizationKey);
        httpRequest.Content = new StringContent(jsonBody, Encoding.UTF8, "application/json");

        httpClient = new HttpClient();
        using (await httpClient.SendAsync(httpRequest))
        {
        }
    }
    catch
    {
        throw;
    }
    finally
    {
        httpRequest.Dispose();
        httpClient.Dispose();
    }
}
 类似资料:
  • 问题内容: 我一直在构建一个简单的应用程序来学习angular.js。到目前为止,我已经将MEAN堆栈中的所有内容连接在一起,并且能够从Mongo中保存和检索数据。 该应用程序本质上是一个待办事项列表。用户可以创建一个项目,并在项目内部创建带有“待办事项”的“卡片”,然后可以从一个州转移到另一个州(“积压”,“进行中”,“完成”等)。 我希望能够将通知推送给所有已连接的人员,以告知其应用程序需要刷

  • 尊敬的谷歌日历团队:, 我们想为日历开发推送通知。我已经看完了这篇文章https://developers.google.com/google-apps/calendar/v3/push. 但我有几个问题:- 我们也有C语言的日历消息推送吗? 如何获取通知通道id? 域在这种情况下是什么意思?域将始终gmail.com。 你能分享一个可以显示日历工作消息推送的示例吗? -拉胡尔

  • 我在后端使用AWS SNS SDK向我的应用程序发送远程通知,我需要能够设置通知标识符,以便某些通知默认替换之前交付的副本,如iOS开发者文档中所述: 如果在计划新通知时使用相同的标识符,系统将删除具有该标识符的先前计划的通知,并将其替换为新通知。 对于本地通知,这很容易做到,因为它们是在应用程序中安排的,在安排通知时,您可以在应用程序中设置通知标识符。 但是,对于远程通知,我似乎找不到任何方法来

  • 离子推动 似乎是最好的解决办法。它“模拟”浏览器中的通知,使测试变得容易。有两个版本: > 1.0版:文档可在http://docs.ionic.io/v1.0/docs/push-overview上查阅。页面底部显示一个警告,表示要检查最新版本(2.0beta)。如果我一直留在页面中并尝试按照说明操作,那么一切似乎都运行得很好,但是如果我将推送发送到https://push.ionic.io/a

  • 首先,我想声明我一直在研究推送通知和web通知之间的关系,但我有点困惑。 我从这里读到PWAs的推送通知在Safari上的iOS(iPhone)不起作用:从PWA向iOS发送推送通知 然而,如果iPhone用户使用的是Chrome,这是否意味着它们可以工作呢?或者推送通知在任何浏览器上对iPhone中的PWAs都不起作用? 这就把我带到了web通知。web通知在后台对PWAs起作用吗?我的问题是w

  • 我有一个使用Xamarin.Forms的应用程序,针对IOS,Android和WP 8。 我的应用中需要推送通知功能。 我看过<code>pushsharp</code>演示,它似乎很有前途。但我看到的所有代码都是针对每个平台分别编写的。 我希望这件事能在法庭上进行。Forms项目,在App.cs中的某个地方,这样我就不需要重复注册设备的代码,也不需要处理应该如何处理推送通知。 任何帮助都将不胜感