Skip to content

一个运行在Windows本机的服务,监听http接口请求触发windows消息通知

License

Notifications You must be signed in to change notification settings

shanghaobo/http-win-notice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

HTTP Windows消息通知

GitHub GitHub release (with filter) GitHub repo size GitHub Repo stars GitHub all releases GitHub last commit (branch)

一个运行在 Windows 本机的服务,监听 http 接口请求触发 windows 消息通知

功能

  • http 接口请求
  • Windows 消息弹窗
  • 历史消息记录
  • 开机启动
  • 托盘控制
  • 端口配置
  • frp 内网穿透集成
  • 公网调用
  • 自定义通知按钮

架构

  • 内网环境下,局域网内可通过内网 ip+端口调用,如http://192.168.124.11:19000
  • 公网环境可选择开启,配置开启后可通过公网调用,如http://123.123.1.2:19001,此时公网调用请求会转发到本机的 web 服务,从而触发消息通知。详情查看公网调用

使用

  1. 下载对应版本的http-win-notice压缩包,下载地址

  2. 解压后双击http-win-notice.exe启动

  3. 右击托盘图标勾选开机启动

  4. 通知调用

    • 方式 1

      浏览器输入链接http://127.0.0.1:19000/api/toast?msg=哈喽,我是新的消息通知

    • 方式 2 (python 调用示例)

      import requests
      
      title = "自定义通知标题"
      msg = "我是测试消息通知啦啦啦啦啦"
      res = requests.get(f"http://127.0.0.1:19000/api/toast?msg={msg}&title={title}")
      print(res.json())

      详情可见 接口文档

  5. 可右击托盘图标,点击配置文件修改端口号

  6. 可打开 web 界面查看历史消息记录

效果

  • 程序运行

  • 调用 http 消息通知接口

  • 消息通知记录

接口文档

发送通知

  • API: http://hostname:port/api/toast
  • 请求方式:GET
  • 请求参数
参数名 默认值 解释
title 消息通知 通知标题
msg 这是一条测试消息 通知内容
remark 备注
icon 0 图标索引,配合配置文件使用
duration short 持续时长,short-短,大概 6 秒 long-长,大概 25 秒
audio default 声音
button (默认展示全部消息按钮) 自定义按钮(见下方【button 参数说明】)

其中icon需修改配置文件,参考配置如下:

toast:
  icons:
    - logo.png
    - logo2.png

此时传icon=1表示使用logo2.png图标,图标图片需放在config.yml同级的images目录内

audio的参数可选值如下:
描述
default Default
im IM
mail Mail
reminder Reminder
sms SMS
loopingalarm LoopingAlarm
loopingalarm2 LoopingAlarm2
loopingalarm3 LoopingAlarm3
loopingalarm4 LoopingAlarm4
loopingalarm5 LoopingAlarm5
loopingalarm6 LoopingAlarm6
loopingalarm7 LoopingAlarm7
loopingalarm8 LoopingAlarm8
loopingalarm9 LoopingAlarm9
loopingalarm10 LoopingAlarm10
loopingcall LoopingCall
loopingcall2 LoopingCall2
loopingcall3 LoopingCall3
loopingcall4 LoopingCall4
loopingcall5 LoopingCall5
loopingcall6 LoopingCall6
loopingcall7 LoopingCall7
loopingcall8 LoopingCall8
loopingcall9 LoopingCall9
loopingcall10 LoopingCall10
button参数说明 button 参数值为 json 格式,结构如下:
参数名 解释 额外说明
name 按钮名称
url 点击按钮跳转链接 配置常量'$WEB_PAGE'时为消息记录页面地址

使用自定义 button 的示例调用(Python 版)

import json
import requests

msg = "测试"
button = [
    {
        "name": "百度",
        "url": "https://www.baidu.com",
    },
    {
        "name": "全部消息",
        "url": "$WEB_PAGE",
    }
]
button_text = json.dumps(button)

api = f"http://127.0.0.1:19000/api/toast?msg={msg}&button={button_text}"
requests.get(api)

公网调用

  • 开启公网调用需要有一台带公网 ip 的服务器
  • 配置并开启后可实现公网调用接口发送通知

方式 1: 使用 forward(推荐)

服务端配置

  1. 下载对应的forward-server下载地址

  2. 在同级目录下创建config.yml配置文件,参考如下:

    server_port: 9919
    token: httpwinnotice123456
    api_port: 19009
    api_token: httpforward123456
    • server_port: 转发服务的 socket 端口号
    • token: 安全认证,与客户端配置保持一致,建议修改默认值
    • api_port: 转发 api 的端口号
    • api_token: 调用转发 api 的认证 token
  3. 启动转发服务(Linux 环境)

    chmod +x ./forward-server
    
    # 直接启动
    ./forward-server
    
    # 后台启动
    nohup ./forward-server >> nohup.out &

客户端配置

  1. 右击托盘图标选择配置文件,修改配置文件内forward相关内容并保存。参考配置如下:

    forward:
      enable: 1
      server_addr: 123.123.1.1
      server_port: 9919
      token: httpwinnotice123456
    • enable: 0-关闭 1-开启转发服务
    • server_addr: 转发服务器 ip
    • server_port: 转发服务端口号
    • token: 与服务器配置的 token 保持一致,建议修改默认值

配置好后重启程序

测试

按示例的配置,浏览器请求http://123.123.1.1:19009?msg=哈喽,若本机出现弹窗证明成功

方式 2: 使用 frp 内网穿透

服务端配置

  1. 下载frps,选择对应服务器版本即可。下载地址
  2. 修改frps.ini配置文件,配置参考:
  • frps.ini
[common]
bind_port = 7000
token = httpwinnotice123456
  1. 启动服务端:
chmod +x ./frps
./frps -c frps.ini

客户端配置

  1. 右击托盘图标选择配置目录,下载frpc.exe文件并移动到打开的配置目录内。下载地址
  2. 右击托盘图标选择配置文件,修改配置文件中frp相关内容并保存。参考配置如下:
frp:
  enable: 1
  server_addr: 123.123.1.2
  server_port: 7000
  token: httpwinnotice123456
  remote_port: 19001

配置的各项解释如下:

  • enable: 1-开启 frp,0-关闭 frp
  • server_addr: 部署 frps 服务器的公网 ip
  • server_port: frps 服务端口号
  • token: 与服务器端配置 token 一致,建议将默认值修改
  • remote_port: 转发的远端端口号

注意服务器防火墙放开对应的端口号,以上示例配置在公网调用时使用http://123.123.1.2:19001/api/toast

配置好后重启程序即可

测试

浏览器打开http://123.123.1.2:19001/api/toast?msg=哈喽 如果 windows 通知出现证明开启成功(ip 和端口号替换为自己的)

其他

完整配置参考

port: 19000
toast:
  icons:
    - logo.png
    - logo2.png
forward:
  enable: 1
  server_addr: 123.123.1.1
  server_port: 9919
  token: httpwinnotice123456
frp:
  enable: 0
  server_addr: 127.0.0.1
  server_port: 7000
  token: httpwinnotice123456
  remote_port: 19001

About

一个运行在Windows本机的服务,监听http接口请求触发windows消息通知

Topics

Resources

License

Stars

Watchers

Forks

Languages