整理MP设置的那篇文章经常有人问微信消息的问题,整理一下笔记,关于如何创建企业微信应用,看文章底部第二篇文章,博主写的很清楚,我就不重复创建同质化内容了。
安装wxchat
有服务器的可以自己搭建wxchat-Docker服务,推荐docker-compose方式部署
12303是容器端口,这个随便选一个端口,后面我要用nginx反向代理这个端口。如果不配置域名,就已经安装完成了。在服务器网络规则把12303端口开放,http://服务器IP:12303就是自己搭建的微信代理地址。如果你用的 80 端口直接用IP访问即可。
1
2
3
4
5
6
7
|
services:
wxchat:
container_name: wxchat
restart: always
ports:
- 12303:80
image: ddsderek/wxchat:latest
|
配置域名
这一步可有可无,如果是国内服务器域名需要备案。用域名也有好处,比如可以用https、换服务器配置不用动。如果需要SSL证书,我博客连接里面有推荐。
nginx设置如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
server {
listen 443 ssl;
server_name notice.11010.net;
ssl_certificate /ssl/11010.net/fullchain.cer;
ssl_certificate_key /ssl/11010.net/cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/notice.access.log;
error_log /var/log/nginx/notice.error.log;
client_max_body_size 200m;
location / {
proxy_pass http://你自己的服务器IP,用内网即可:12303;
}
}
|
不抬杠,我说的配置域名可有可无,其实明白了原理,安装wxchat也是可有可无,直接用nginx处理/cgi-bin/gettoken、/cgi-bin/message/send、/cgi-bin/menu/create就可以了,方法太多了,找到自己合适的就是最好的
关于微信菜单栏无反应
有的小伙伴反应说代理地址配好了,可以接收MP的消息通知但是菜单栏点击无反应。登陆自己的企业微信应用,看看API接收消息配置的URL,还能正常访问吗,大概率是这个地方的问题。


如果你有一台服务器
上面配置接收消息服务器配置URL可以改为自己服务器的服务,前提是服务器和自己部署MP的组成大内网,关于如何组网,看参考文章第三篇文章。下面主要说nginx如何配置。PS:不想把NAS服务暴漏在公网的可以参考。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
server {
listen 443 ssl;
server_name notice.11010.net;
ssl_certificate /ssl/11010.net/fullchain.cer;
ssl_certificate_key /ssl/11010.net/cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/notice.access.log;
error_log /var/log/nginx/notice.error.log;
client_max_body_size 200m;
location /api/v1/message/ {
proxy_pass http://10.8.0.4:3000/api/v1/message/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// https://[citation:5];
}
location / {
proxy_pass http://xxxxxip:12303;
}
}
|
问答
📎 参考文章