通知渠道
需要开启某个渠道的消息通知时,需要完成以下设定:
- 在
设定 -> 通知 -> 通知渠道
中启用对应的消息渠道,并维护好对应消息渠道的相关参数,保存并重启。 - 在
设定 -> 通知 -> 消息类型
中开启对应渠道对应消息类型的消息开关。
系统通知
系统运行状态以及发生错误时,会通过系统通知进行提醒,可登录WEB管理界面,在右上角消息提醒中心进行查看。
微信
在企业微信控制台
我的企业->微信插件
找到二维码,使用微信扫码后可直接在微信使用,无需打开企业微信客户端。 {.is-success}
- 企业ID:在企业微信管理后台
我的企业
-企业信息
下查看企业ID
。 - 应用Secret: 在企业微信管理后台
应用管理
-自建
下查看Secret
。 - 应用AgentId:在企业微信管理后台
应用管理
-自建
下查看AgentId
。 - 消息推送代理:填写自己可用的
消息代理服务地址
,并将消息代理服务器的真实IP填写到企业微信应用IP白名单
中。
微信消息回调
- 在微信企业应用
接收消息
设置页面生成Token
和EncodingAESKey
并填入设定->通知->微信
对应项,并保存。 - 在微信企业应用
接收消息
页面输入此地址:http(s)://DOMAIN:PORT/api/v1/message/
(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 Subscriptions
、Bots
、Permissions
。其中Bot Token Scopes
赋于chat:write
、im:read
、im:history
、channels:read
、commands
权限;Subscribe to bot events
赋于message.im
、app_mention
权限;按需维护Interactivity & Shortcuts
菜单,类型为Global
,菜单Callback ID需与项目主页说明一致。 - 创建
App-Level Tokens
并赋于connections:write
权限。 - Install App 到工作区,登录工作区将App添加到
全体
频道。 OAuth & Permissions
中 获取Bot User OAuth Token
,Basic 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发送,其余媒体类消息则通知到微信等客户端,实现管理员消息通知和普通使用用户通知分离。