由于项目的需要,需要统一获取微信小程序的access_token,通过阿里云的函数计算加定时触发器1.5小时获取一次token
问题: 微信小程序需要添加ip白名单才能获取,但是阿里云的函数计算是动态ip,所以无法添加。
解决办法:
- 申请一个很简单的ECS,安装nginx代理服务,把ECS的ip加到微信的ip白名单
- 在函数计算里面访问自己的代理服务, 如"http://ip:8090/cgi-bin/token?grant_type=client_credential&appid=xxx&secret=xxx"
- nginx配置:
server { listen 8090; location / { resolver 8.8.8.8; proxy_pass https://api.weixin.qq.com$request_uri; proxy_buffers 256 4k; proxy_max_temp_file_size 0k; } }
如果觉得安装nginx麻烦,可以直接安装docker服务,下载nginx的镜像
docker pull nginx
把上面的配置保存为proxy.conf文件,然后启动容器
docker run -dit --name nginx -h nginx -p 8090:8090 --restart=always -v /root/nginx/proxy.conf:/etc/nginx/conf.d/proxy.conf nginx