uniCloud开发公众号:零、准备工作(各平台的设置和基础概念)

567 阅读3分钟

算是个系列内容吧,最终要实现的是将uniCloud作为后端完成“扫码关注公众号后完成网站登录 将要涉及的内容可能包括:

0.准备工作(本节)

1.接受并解析xml消息

2.请求access_token并缓存

3.生成带参数二维码

4.引入redis缓存和unipush2.0

5.解析不同情况下用户扫码时推送的事件并完成登录

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都无所谓,因为选的是明文模式。

image.png

对应的云函数内容:

// 这里在第一次绑定的时候,不用考虑太多,直接把接收到的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内容的解析并进行相应的处理。