Skip to content

RyanStanLin/BarkerSharper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BarkerSharperTitle

BarkerSharper

[BarkerSharper] 是 Bark 在.net中的api封装库

速览

  • 适配最新的 [Bark] 服务端。
  • 实现了 [Bark] 的 AES128,192,256加密批量发送
  • bark-server 作为推送系统。
  • 支持Async调用。
  • 提供了简单的调用方式

安装

  • 使用 Nuget 安装(推荐)
    • Nuget 包管理器: Install-Package BarkerSharper
    • .NET CLI: dotnet add package BarkerSharper
    • 或者在 IDE 的可视化界面搜索BarkerSharper安装最新版。
  • 自己克隆这个仓库的默认分支,然后自己编译,然后自己添加 dll 引用。

快速开始

Barker类构造函数接受一个BarkConfiguration配置参数:

  • 必填字段为:
    • baseUrl : Uri Bark服务端地址,如https://api.day.app
    • deviceKey : stringdeviceKeys : List<string> 以实现批量发送
  • 选填字段为:
    • encryptionConfig : EncryptionConfiguration AES加密配置

实例化 Barker 后使用 BarkBarkAsync 来同步或异步发送信息。

public BarkReceipt Bark<T>(T notificationModel) where T : BarkNotificationBaseModel
 in class BarkerSharper.Barker

你可以选择 BarkNotificationExtendedModelBarkNotificationBaseModel(基础模型) 消息类实例化来建立信息。

BarkNotificationExtendedModel 为派生类,支持添加其他消息属性。

下面的例子就是使用AES256 CBC加密,向两台设备 WHkMpzrC4…whKmPZRc5… 发送

//若批量发送,否则不需要传List,具体请看BarkConfiguration的实例化
List<string> devices = new();
        devices.Add("WHkMpzrC4mTnuagU49Cvnm");
        devices.Add("whKmPZRc5MtNUAGu47cVNM");

//若使用AES加密,密钥及偏移量
byte[] key = Encoding.UTF8.GetBytes("10101010101010101010101010101010");
byte[] iv = Encoding.UTF8.GetBytes("0000000000000000");

//若使用AES加密,请实例化AES加密配置EncryptionConfiguration
var encryptionConfiguration = new EncryptionConfiguration
{
    KeySize = AesKeySize.Aes256,	//加密方式Aes128,Aes192,Aes256
    CipherMode = AesCipherMode.CBC,//目前仅支持CBC及ECB
    Key = key,
    IV = iv,
    Encoding = Encoding.UTF8
};

var barkerConfig = new BarkConfiguration(
	baseUrl: new Uri("https://api.day.app"),
	deviceKeys: devices,						//单设备请赋值deviceKey参数

	encryptionConfig: encryptionConfiguration);//可选参数,若传加密配置,则默认信息加密

Barker barker = new Barker(barkerConfig);

//使用基础模型,仅可用Title和Body
barker.Bark(new BarkNotificationBaseModel()
{
	Body = "Hello, Body!",
	Title = "Hello, BarkerSharper!"
});

//使用拓展模型,支持所有参数
barker.Bark(new BarkNotificationExtendedModel()
{
	Body = "Hello, BarkerSharper!",
	Title = "Hi!",
	Level = NotificationLevel.Critical,		//Level参数具体请看Bark文档,NotificationLevel已实现
	Sound = NotificationSound.PaymentSuccess,//可用Sound具体请看Bark文档,NotificationSound已实现
	Group = "HelloGroup"
});

About

Implementation of Bark API based on .NET, supporting encryption, batch sending, and other new features of Bark.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages