微信公众平台接口

项目地址

  • [x] 验证服务器地址的有效性
  • [x] 定时任务刷新获取 access_token
  • [x] 微信登录授权

设置

  • 开发环境
    • 安装微信 web 开发者工具 模拟微信客户端调试
    • 安装 localtunnel 或者 ngrok 让外网访问本地(局域网) web 服务
    • 获取信公众平台测试账号。登录微信公众平台,在开发者工具选中 公众平台测试帐号 获取 appIDappsecret,填写到 config/app.yml文件中
    • 在微信公众平台管理测试号中设置网页授权获取用户基本信息, 授权回调页面域名 设置为 127.0.0.1:3000
  • 生产环境
    • 登录微信公众平台,在 开发基本配置 中获取开通的微信公众号 appIDappsecret ,填写到 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 , 填写的 tokenconfig/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 页面 , 点击即可测试授权流程。

1 条评论
您想说点什么吗?
ABC 评论于 2017-03-16 18:28

test comment