Skip to content

Latest commit

 

History

History
129 lines (97 loc) · 7.56 KB

notification.md

File metadata and controls

129 lines (97 loc) · 7.56 KB
title description published date tags editor dateCreated
通知
设置消息通知渠道以及远程控制
1
2024-11-11 02:39:10 UTC
markdown
2024-05-31 12:38:49 UTC

系统通知

系统运行状态以及发生错误时,会通过系统通知进行提醒,可登录WEB管理界面,在右上角消息提醒中心进行查看。

V2版本变化说明
v2.0.0+ 版本后API_TOKEN需要设置16位或以上的复杂字符串 ,如果同一类型的消息配置了多个,回调请求地址中还需要加上 &source=配置名称 参数,其中配置名称建议使用英文,如果配置名称为中文或存在特殊字符(如空格),部分平台(如企业微信)可能需要进行URL编码。为了方便识别和管理,建议统一在所有回调地址中添加source参数,以确保各配置间的区分和调用更加清晰。 {.is-info}

通知隔离

V2版本支持消息通知按用户隔离,需要在用户个人信息中维护对应通知渠道的ID,同时在设定中按消息类型选择好通知发送范围。

  • 使用远程消息或菜单命令交互进行交互时,交互类消息只有操作人才能收到。
  • 对于用户主动发起的操作或者有关联到对应用户的通知,比如开始下载、新增订阅、完成订阅等,按设定的通知发送范围设定,可发送给操作人、管理员或全体人员。
  • 对于入库、系统通知、各类插件通知等系统自动发起无法关联操作人员的广播类消息,按消息发送范围设定,可指定发送给管理员或者全体人员。
  • 如果对应用户没有正常维护个人信息中的相关通知渠道ID,通知将会发送给管理员,如果管理员也没有维护通知渠道ID,通知可能会发送失败。发送给全体的通知不受此限制。
  • 对于一些插件会添加订阅的,如果想实现该类订阅通知发送给特定人员,需要在系统中建立一个名称与该插件产生的订阅用户名一致的用户,并设定通知渠道ID。

微信

在企业微信控制台我的企业->微信插件找到二维码,使用微信扫码后可直接在微信使用,无需打开企业微信客户端。 {.is-success}

  • 企业ID:在企业微信管理后台我的企业企业信息下查看企业ID
  • 应用Secret: 在企业微信管理后台应用管理自建下查看Secret
  • 应用AgentId:在企业微信管理后台应用管理自建下查看AgentId
  • 消息推送代理:填写自己可用的消息代理服务地址,并将消息代理服务器的真实IP填写到企业微信应用IP白名单中。

微信消息回调

  • 在微信企业应用接收消息设置页面生成TokenEncodingAESKey并填入设定->通知->微信对应项,并保存
  • 在微信企业应用接收消息页面输入此地址:http(s)://DOMAIN:PORT/api/v1/message/?token=moviepilot(其中moviepilot修改为实际配置中实际的API_TOKEN的值,DOMAIN、PORT替换为本工具的外网访问地址及端口,需要有公网IP域名并做好端口转发),能正常保存即设置成功。
  • 会自动生成微信控制菜单,无需手动维护。

消息代理服务器

2022年6月后新建的企业微信应用需要有固定公网IP的代理才能接收到消息,需要使用有固定IP的VPS搭建代理服务,同时代理添加以下代码:

location /cgi-bin/gettoken {
    proxy_pass https://qyapi.weixin.qq.com;
}
location /cgi-bin/message/send {
    proxy_pass https://qyapi.weixin.qq.com;
}
location  /cgi-bin/menu/create {
    proxy_pass https://qyapi.weixin.qq.com;
}

可以使用这个项目直接搭建:wxchat-Docker

感谢 @snnh 提供的教程:使用腾讯云cdn实现企业微信反向代理

或者使用 TCP 中转服务器来实现,以 socat 为例,使用 docker compose 搭建中转服务器

version: "3.5"
services:
  wxqyapi-relay:
      image: alpine/socat
      container_name: wxqyapi-relay
      command: "TCP-LISTEN:9090,fork,reuseaddr TCP:qyapi.weixin.qq.com:443"
      expose:
        - "9090"
      ports:
        - "443:9090"
      restart: unless-stopped

然后添加 hosts 将 qyapi.weixin.qq.com 指向该服务即可

ip_of_your_server qyapi.weixin.qq.com

如果 socat 服务不能使用 443 端口,需要配置 WECHAT_PROXY,比如 socat 监听的 8543 端口,需要设置 WECHAT_PROXY=https://qyapi.weixin.qq.com:8543 并同时配置 hosts

TCP 中转服务也可以通过 Nginx 实现,通常 socat 用不了 443 端口都是因为 443 被 Nginx 占用了,方法参考 https://atpx.com/blog/nginx-tcp-proxy-forward-client-ip/

管理员白名单

设置后,只有在管理员白名单的用户才可以使用微信应用号的菜单功能。

Telegram

  • 采用消息轮循方式接收消息,无需特殊设置即具有Telegram消息交互能力。
  • 需要网络能正常连挡Telegram。

用户白名单

设置后,只有用户白名单中的ID对应用户,才能关注你的机器人发送消息。

管理员白名单

设置后,只有在管理员白名单的用户才可以关注你的机器人并操作命令功能。

Slack

  • https://slack.com/intl/zh-cn/ 创建工作区
  • https://api.slack.com/ 创建App应用,打开 Socket Mode
  • 开启Event SubscriptionsBotsPermissions。其中Bot Token Scopes 赋于 chat:writeim:readim:historychannels:readcommands权限;Subscribe to bot events 赋于 message.imapp_mention 权限;按需维护Interactivity & Shortcuts菜单,类型为Global,菜单Callback ID需与项目主页说明一致。
  • 创建 App-Level Tokens 并赋于 connections:write 权限。
  • Install App 到工作区,登录工作区将App添加到全体频道。
  • OAuth & Permissions 中 获取 Bot User OAuth TokenBasic Information 中 获取 App-Level Tokens 填入相关设置项中,保存。

SynologyChat

  • 群晖中安装Synology Chat
  • 整合->机器人中创建机器人,机器人勾选启用整合,取消在聊天机器人列表中隐藏传出URL设置为http://ip:port/api/v1/message/?token=moviepilot,其中moviepilot修改为实际配置中实际的API_TOKEN的值,ip:port为实际MoviePilot的IP地址和端口。记录机器人传入URL令牌
  • 机器人传入URL令牌填入MoviePilot相关设置项,保存。
  • Synology Chat界面中左侧机器人,点+号,添加机器人聊天。

VoceChat

  • 参考 https://doc.voce.chat 搭建VoceChat服务,创建机器人,获取机器人密钥频道ID连同服务地址填入对应设置项,保存。
  • VoceChat机器人Webhook地址设置为:http://ip:port/api/v1/message/?token=moviepilot,其中moviepilot修改为实际配置中实际的API_TOKEN的值,ip:port为实际MoviePilot的IP地址和端口。

WebPush

WebPush基于PWA实现让网页应用能像App客户端一样发送消息通知,实现客户端级的消息通知使用体验,开启WebPush需要满足以下条件:

  • 使用域名访问MoviePilot,并设置启动好SSL
  • 将MoviePilot网页发送到桌面图标,完成PWA应用安装。
  • 在桌面图标启动,完成登录,在提示窗口中点击允许发送消息权限。
  • 如果为IOS,需要16.4以上版本。

建议将插件、站点等消息通过WebPush发送,其余媒体类消息则通知到微信等客户端,实现管理员消息通知和普通使用用户通知分离。