Sign inSign up

pdone/freenotify

By pdone

Updated about 4 years ago

免费的、可私有化部署的通知服务

Image
0

144

pdone/freenotify repository overview

FreeNotify

免费的、可私有化部署的通知服务

功能

  • 企业微信应用消息推送 1
  • Free Notify Android(独立应用,仅用于接收消息)
Todo
  • Free Notify Android 集成小米推送
  • 调用鉴权
  • 消息队列
  • 邮件消息推送
  • Free Notify iOS(独立应用,仅用于接收消息)

部署

Docker Cli(推荐)
docker run -d \
--name freenotify \
-p 9981:9981 \
-v 你的目录:/data \
--restart unless-stopped \
pdone/freenotify:1.1
Windows
IIS

在IIS里创建网站,绑定9981端口,把压缩包内所有文件复制到网站根目录下。

直接运行

直接运行压缩包中的 FreeNotify.exe

Windows下两种方式二选一即可,Windows压缩包中不包含 .NET 6 Runtime 请自行下载安装。 (下载时请选择 ASP.NET Core 运行时 6 或更高版本)

配置

Docker

打开 你的目录 中的 config.json文件,配置其中需要的参数,重启容器生效。

Windows

打开 程序根目录中的 config.json文件,配置其中需要的参数,重启服务生效。

企业微信参数说明
  • CorpId 企业ID,获取方式参考:术语说明-corpid
  • CorpSecret 应用的凭证密钥,获取方式参考:术语说明-secret
  • AgentId 企业应用ID,可在应用的设置页面查看
  • ToUser 消息推送目标,默认值 @all 即企业全员
独立App参数说明
  • CloudFunc 云函数地址,固定不变无需修改。
  • PushId 推送ID,在App中获取。

使用

Swagger(接口文档和在线调试)

调试模式下(配置文件中的 IsDebug 值为 true时),可通过 http://localhost:9981/swagger 访问Swagger页面,对接口进行临时调试,同时在Swagger页面中也提供了详细的接口文档,故下文仅提供个别接口示例,可以在Swagger页面看到完整的可用接口列表。

HTTP / HTTPS 2

可使用 GETPOST 请求进行消息的推送,具体请求路径参考Swagger页面。

企业微信
发送企业微信文本消息 HTTP GET
curl -X 'GET' \
  'http://localhost:9981/api/wxwork/sendText?content=test' \
  -H 'accept: text/plain'

其中,请求地址为 http://localhost:9981/api/wxwork/sendText?content=test 3,消息内容为 test。 此时,企业微信中会收到一条文字消息 test

Free Notify Android
  1. 下载Apk安装包并安装。
  1. 在通知管理中开启 消息推送 权限,省电策略改为 无限制4
  2. 打开应用,进入 My 页面,点击 获取Push ID 按钮,将获取到的 Push ID 配置到 config.json中,重启容器或服务生效(重装应用清除应用全部数据 后需要重新获取 Push ID)。
发送App文本消息 HTTP GET
curl -X 'GET' \
  'http://localhost:9981/api/app/sendText?title=title&content=content' \
  -H 'accept: text/plain'

其中,请求地址为 http://localhost:9981/api/app/sendText?title=title&content=content,消息标题为 title,消息内容为 content。 此时,若手机App正在前台(后台)运行,手机上方通知栏会弹出一条消息,点击消息可进入App界面。

版本说明

正式版本(推荐)

以数字形式命名,如 1.1,功能稳定,根据迭代增加版本号。

初始版本

版本号固定为 alpha,后续不再维护,仅作为项目启动的纪念。

补充说明

  1. 企业微信在2022年6月20日之后新创建的应用,需要额外配置可信IP。来自IP白名单里的请求企业微信才会处理,所以无公网IP或者动态公网IP的朋友无需尝试了,但在这个时间点之前创建的企业应用不配置IP白名单也可以正常调用企业微信的接口。详情见 自建及代开发应用安全性升级。
  2. HTTP端口为 9981,HTTPS端口为 9982,但 1.0 版本暂未提供HTTPS支持,后续会进行支持。
  3. 1.1 版本已增加路由层级,详细内容请参考Swagger页面。 由于目前 1.0 版本只开发了企业微信消息推送,所以路由中只有 /api 这一层,后续如果增加了其他方式的推送,会增加路由层级,调整为 /api/wxwork/api/email/api/app等。
  4. 目前还没有接入厂商推送,所以App进程被杀掉,就收不到消息了,直到下次启动App时才会收到。

Tag summary

Content type

Image

Digest

sha256:16c00f9d5

Size

85.7 MB

Last updated

about 4 years ago

docker pull pdone/freenotify:1.1