微信公众平台接口
- [x] 验证服务器地址的有效性
- [x] 定时任务刷新获取 access_token
- [x] 微信登录授权
设置
- 开发环境
- 安装微信 web 开发者工具 模拟微信客户端调试
- 安装 localtunnel 或者 ngrok 让外网访问本地(局域网) web 服务
- 获取信公众平台测试账号。登录微信公众平台,在开发者工具选中 公众平台测试帐号 获取
appID
和appsecret
,填写到config/app.yml
文件中 - 在微信公众平台管理测试号中设置网页授权获取用户基本信息, 授权回调页面域名 设置为
127.0.0.1:3000
- 生产环境
- 登录微信公众平台,在 开发 的 基本配置 中获取开通的微信公众号
appID
和appsecret
,填写到config/app.yml
文件中;启用服务器配置,并填写生产环境的服务器地址(RUL),另外把设置好的 token 填写到config/app.yml
中。 - 在微信公众平台后台中 开发 的 接口权限 设置 网页授权获取用户基本信息 线上域名(域名不能带 http 协议)或者 IP 地址
- 登录微信公众平台,在 开发 的 基本配置 中获取开通的微信公众号
接口使用
rails s
启动服务
在 微信 web 开发工具 选择 公众号网页开发 调试类型,然后在上面类似浏览器链接输入的地方输入 http://127.0.0.1:3000/
即可访问服务。
验证服务器地址的有效性
在接口配置信息信息中填写能够被外网访问的 URL ,在本地开发时可通过 localtunnel 获取一个能够被外网访问本地 80 端口的 web 服务,然后填入的 URL 为 https://your_domain/wechat/verify
, 填写的 token 与 config/app.yml
要一致。最后提交即可。
定时任务刷新获取 access_token
使用了 sidekiq 作为定时任务,每一个小时向微信服务器主动刷新获取 access_token
RAILS_ENV=development sidekiq -C config/sidekiq.yml -d
命令开启定时任务。
微信登录授权
wechat_oauth_link(app_id, redirect_uri, scope = "snsapi_base", name)
帮助方法拼接生成获取 code 的连接。默认是静默授权,如果需要获取更多的用户信息,需要把 scope
参数值改为 snsapi_userinfo
。
源代码实现的例子中,root_path 页面有一个链接 获取 open_id 页面 , 点击即可测试授权流程。