discord公告推送到微信

一,注册阿里云,购买轻量服务器

https://www.aliyun.com
注册完成后,需要实名认证,建议使用支付宝扫码认证,秒通过。
(不想实名认证可以使用国外的云服务商,如vultr,contabo,hetzner等)

点击左上角菜单栏,搜索”轻量应用服务器”

点进去之后,选择创建服务器,地域选择: 香港或新加坡

镜像: ubuntu 22.04
套餐: 最低配即可,不需要数据盘

服务器开通后,设置root密码并重启服务器

二, 注册企业微信:

(无需营业执照,个人随便注册,企业名不要起的太随便就行,否则审核通不过,消息机器人用不了)
https://work.weixin.qq.com/?from=qyh_redirect

需要扫码绑定个人微信。

注册完成后,直接进入管理后台。

管理后台地址:
work.weixin.qq.com

在微信企业号后台的通讯录中,邀请至少三位微信好友加入,手机安装企业微信,创建一个至少3人的群组。(让微信好友把这个群设置为免打扰模式)


创建群组后,在群组设置里创建一个群机器人,创建后会提供一个webhook链接,记录下来。

在 我的企业-微信插件 里,用个人微信扫码,就可以在个人微信接收群组消息了。

三,登录服务器,部署discord消息推送代码

可通过下载xshell或者mobaxterm等ssh工具远程连接服务器。

MobaXterm远程工具下载:
https://testnetcn.oss-cn-hangzhou.aliyuncs.com/MobaXterm.zip

为方便小白用户,本文通过阿里云控制台自带的远程连接作演示:

点击远程连接,在弹出的提示窗中 选择 Workbench 一键连接


连接到命令行后,默认是低权限的普通用户,为方便起见,切换到root用户:

sudo su -

核心代码是copy这两位大佬的,我仅添加了微信模块,在此表示感谢:

https://github.com/Snapmali/discord-monitor

https://github.com/dolfies/discord.py-self

在服务器上部署代码:

下载代码压缩包并解压

wget https://testnetcn.oss-cn-hangzhou.aliyuncs.com/code/discord-to-wechat.tar.gz && tar xvf discord-to-wechat.tar.gz -C /root

进入代码所在文件夹

cd /root/discord-to-wechat/
代码运行环境为Python 3.8,因此我们需要先安装Python的虚拟环境:

mkdir -p ~/miniconda3

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh

bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3

~/miniconda3/bin/conda init bash

source $HOME/.bashrc

激活Python 3.8 虚拟环境

conda create -n discord python=3.8.0 -y

conda activate discord

执行 python -V 命令,确认当前版本为3.8再往下执行。

安装依赖


pip install ./discord.py-self-1.7.6/

pip install plyer datetime pytz requests

写入微信机器人webhook链接:

sed -i.bak "s/api_url = ''/api_url = '此处换成刚才创建的群组机器人的webhook链接'/" WxPush.py

使用vim 打开配置文件

vim config.json

按小i 进入编辑模式
把第3行token的值改为你自己discord的登录token,第11行列表里的值,是需要监控的discord频道的ID,以逗号分隔。

例如,我想监控nimble和ethstorage的公告频道,只需复制地址栏中最后面的id,把第11行改为:

"channel": [1210021536677896202, 1144101460796260392],



建议自己先创建个discord频道测试一下。在频道里发消息看能不能在微信收到。
编辑完成后,按一下键盘左上角的ESC键,然后输入

:wq
保存退出。

discord token获取方法:
以Chrome为例,按F12,点击Network, 按F5刷新一下,点击开发者工具左侧栏的资源,在Header部分找到 Request Headers,Authorization字段即为token。

文件配置完毕,可以启动程序了。

启动前建议使用 screen -S 窗口名 命令开一个虚拟窗口,这样即使远程中断,程序依然在后台运行,可使用screen -r 恢复

screen -S discord

激活Python3.8

cd /root/discord-to-wechat && conda activate discord
启动消息推送程序:

python DiscordMonitor.py
按两下enter,不出意外会提示成功登录信息,现在已经可以正常监控频道公告并推送到微信了。

如果出现意外,请检查你写入的配置是否正确。确实无法解决可在群内讨论。

服务器技术交流群请加微信 YJZyjz