赞
踩
算是个系列内容吧,最终要实现的是将uniCloud作为后端完成“扫码关注公众号后完成网站登录”
将要涉及的内容可能包括:
0.准备工作(本节)
1.接受并解析xml消息
2.请求access_token并缓存
3.生成带参数二维码
4.引入、封装redis缓存方法
5.引入、配置、初始化unipush
6.解析不同情况下用户扫码时推送的事件并完成登录
系列内容全部基于uniCloud+vk-uniCloud(云函数路由)+uni-app
编辑器HbuilderX最新版
云空间为阿里云
公众号为认证服务号
1.注册服务号
部分权限只有服务号才有,所以这里直接注册服务号并完成认证。
2.设置服务号
1)ip白名单
这个比较关键,因为如果你使用的是阿里云的unicloud,由于没有固定ip,所以需要把几个中转的ip都贴到这里,然后使用代理的方式发起请求。
目前的IP地址有这些,详见:官方说明
39.100.3.155
47.92.39.39
47.92.67.205
47.92.25.106
47.92.68.159
一股脑都贴进去即可。
2)修改/开启服务器配置
这里就把你Url化的那个云函数地址贴过来即可,下边的token和aeskey都无所谓,因为选的是明文模式。
对应的云函数内容:
// 这里在第一次绑定的时候,不用考虑太多,直接把接收到的echostr字段原样返回即可
let {echostr} = data;
return echostr;
3.uniCloud配置
登录DCloud的插件市场,导入这个项目:【开箱即用】vk-unicloud-router - 云函数路由模式开发框架 - 已集成uni-id
然后设置:云函数URL化
文档详见: vk-unicloud 快速开发框架
这里在uniCloud后台,云函数绑定一下你在【公众号】后台设置的域名;
最终你的url入口就是:
https://你的域名/http/router/你的入口
4.开发云函数
vk-uniCloud的所有云函数都在router/service目录下,默认有client、admin等
这里我们在client下依次新建mp/pub两个目录,
其中mp是自定义的一个名称,pub代表这个文件夹下的云函数不需要token验证
随后在pub目录下新建index.js,内容如下:
'use strict'; module.exports = { /** * 公众号推送入口 * @url client/mp/pub/index 前端调用的url参数地址 * data 请求参数 */ main: async (event) => { let { data = {}, userInfo, util, originalParam } = event; let { customUtil, config, pubFun, vk, db, _ } = util; let { uid } = data; // 业务逻辑开始----------------------------------------------------------- // 所有的逻辑都在这里写 // 比如上边写到的 let {echostr} = data; return echostr; // 业务逻辑结束----------------------------------------------------------- return res; } }
这样,你在【公众号】后台填写的服务器地址就是:
https://你的域名/http/router/client/mp/pub/index
到这里,准备工作就差不多了,在公众号后台点击提交完成后,所有公众号收到的消息、事件都会转发到这个地址,然后我们接下来就是需要完成对xml内容的解析并进行相应的处理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。