00:03
哈喽,大家好,我们本节课来去讲微信云模板里边小程序用户信息模板,它是一个基础能力模板,它是没有页面,只是全代码的,然后呢,我们可以直接在前端的小程序代码中直接去通过调用函数的形式来去调用啊,调用这个信息那里边包含两个接口啊,第一个接口是获取用户的op派ID,然后第二个获取用户手机号,那么我们开始来演示一下如何开通,如何安装和如何使用。好那么我们回到我们自己的一个小程序的测试的项目中来,我们在呃目录中右键通过云模板或AI配置页面打开,然后点击进入云模板的控制台。好,在这里我们转到我们的这一个就是我们自己云开发的环境,如果没有的话,他在一开始进入的时候,会有一个弹出提示,然后大家可以开通一下云开发的环境。
01:03
在这里我们创建应用选择小程序基础能力里的小程序用户信息,那么在这里我们能够大概可以看到我们刚才的那个文档,并且有相关的一些接口,我们点击安装模板,等待它安装完毕,好安装完了之后,我们的这个安装的按钮就没有了,我们就可以直接去使用了,那么在这里的话,他给我们就是相关的一些代码都给我们拿过来了,我们首先先看获取用户open ID, 那么open ID这里首先先去初始化,然后初始化环境就是云开发的环境,我们在这个app.js中我们自己初始化了,并且这里的话就是是否将用户记录记录到用户管理中,然后再控制台可见啊这个其实呃目前来说意义不大了,所以大家可以不用填,然后下面这个的话就是一个函数城市,然后呢,我们可以通过直接复制,然后呢放到你自己的业务逻辑中来,比如说我们在这里点击按钮,然后去触发,去触发一个to page的一个函数。我们在这。
02:03
这里我们先打一下,比如说我们收loading对吧,收loading里边加载中啊,获取中对吧,获取中,然后直接拿过来啊,直接拿过来,那么可以是回调的形式啊,当然也可以直接使用awa since的形式,然后直接把信息拿出来,就是在这里我们直接拿出来。把success干掉,然后直接通过把open派ID啊,RS拿出来之后获取到open派ID,然后隐藏隐藏加载啊,其实就是这一个所有的代码就已经完成了,就是获取用户信息啊,那么我们开始调用啊,获取中啊,获取到open ID已经获取了,它实际上来说是发送了一个云函数的调用,但是这里云函数上面这一层name就是lo base model的这一个云函数,实际上你并没有更开发的环境,本身并没有这个函数,它只是在整个的调用链路中给你去路由了,然后呢,呃,你自己去上传一个同名的一个云函数也没有影响,呃,所以呢,这个前面的这一个,包括其他的小程序基础模板都是固定的这一个内,然后里边的data里边的这个内才是不同的,比如说获取用open ID信息是这一个,然后一会儿我们介绍其他的接口的时候,是另一个name是另一个。
03:29
如果你还想传数据的话,那么data里边是这么一个形式,也就是说我们只关注这里边的,不关注外层的,好,那么这是获取用户信息,获取open ID信息主要是在前端的,你去调数据库,或者是你要根据这个用户的唯一ID去生成一些,生成一些自己的业务的唯一的ID,然后呢来方便你后期的业务可能会用到这种open ID啊,但实际上来说,Open ID这种东西在你正常就是很标准的一些业务场景中,并不会直接暴露在前端,给前端去使用,呃,这样的话会有点损失扩展性啊,有点损失这个业务的扩展性啊,当然的话,跟你的产品交互逻辑也是有强相关的,那么具体的话,如果需要的话,可以直接去使用,直接获取open ID, 就不需要自己再去写一堆接口,先获取X ton, 然后呢,微信点logion之后拿到了code,然后把code换成open ID.
04:29
就太麻烦了啊,就太麻烦了,你还需要用数据库来去写,就太麻烦了,那么这个也可以在云函数中直接适用,但是云函数它在那一个云函数的这一个cloud的上下文中啊,就是就是用户的上下文中,它已经包含了OID了,也就是说你不需要这种东西了,好那么我们就基本上他直接就在叫什么叫直接在小程序端中使用,那么第二个的话,就是手机号快速的在验证啊,我们只是演示一下,因为这里边的话是针对非个人开发者,并且已认证的开发,我目前没有这种类似的这种呃,符合规定的这种小程序,所以呢,我给大家演,我给大家演示啊,就是演示如何去使用啊,如何去使用,那么首先先是第一个的话,你先要触发目前获取手机号,只能是通过一个按钮,通过监听b get phone number啊这么一个。
05:29
个监听啊监听,然后呢,Open typeb是get phone number的这一个叫叫叫开放能力类型,所以呢,我们先把这段代码拿过来,我们直接是先获取手机号后呢,Open是get get number, 然后绑定B的,然后绑定了一个get number, 好这样的话,我们就把后面这一个函数拿到拿出来,拿到前面,拿到前面拿到逻辑层,然后我们在这里去做触发,出发的时候,这里会给你一个相关的内容啊,比如说我们基本上会在一点detail里面,然后呢去给你去返回消息,比如说获取手机号,它其实在这里会给你有相关的东西啊,因为你的小程序没有权限,所以呢会提示啊,就是没有权限的失败,但是如果有的话,他会给你给你给你搞成什么呀?就是给你搞成这个code啊,Code啊,就是我们通过。
06:29
结构结构出来,它其实就是一一点D下面会有一个code的一个参数,然后呢,你需要把这个code的参数拿到,拿到哪里啊,拿到这里边,拿到这里边啊,拿到这里边当一个入参,就是这个code的需要放到这里边啊,就是拿一个入餐,入餐,然后我们正常这是回调嘛,但是这个回调不适合我们,就是不利于我们去做那个啥,要不然会有回调地域,然后呢,我们直接拿出来,然后把相应的结果给它打印出来,就是这个样子,那这样子的话,其实就就已经完成了,就是你就可以直接通过在获取手机号之后,通过一阵加载就能够获取到那个那个信息了啊,然后呢,我们再把这一个loading拿过来啊啊,其实其实这里还是需要一点耗时的,所以大家一定要做好这个用户的交互,呃,好OK,然后后。
07:29
取手机号啊,获取中,然后隐藏,然后他会给你返回这里的信息嘛,但是由于说这个code的是无效的,然后即使我们造假了之后,然后他也是无效的,如果有的话,他会把相关的这一个手机号给你拿过来,然后呢,具体的话可以直接去参照这一个文档啊,就是手机号快速手机号的这个文档,然后呢,它会给你有相关的返回参数,这里里边的话,它会给你返回一个phone info, 比如说我们现在在这里的话,是返回了这个result里边去返回的这么一个东西,对吧,ER code和ER message, 那如果有的话,那你就会有一个phone info phone info的话,我们就直接可以获取这个,呃,那一个没有区号的手机号啊,前面是加86,比如说中国的手机号会呃呃,中国的手机号不会加啊,但是国外的手机号会加,然后呢,呃,如果是下面这一个的话,就不会加区号,不会加区号,然后会给你相关的分开,也就是他加他等于。
08:29
然后呢,并且有水印,这个水印的话,就是用户获取时间号操作的时间戳,呃正常来说我们并不应该在小程序中直接去通过调用这个接口来去获得啊,虽然从那一个安全性上来说并没有什么啊,但是呃,我们可能会会比较干什么,就是有一些业务并不应该直接通过前端来去弄,比如说你获取手机号,那如果说获取手机号之后,那你肯定会通过另一个接口,比如说保存手机号信息的接口,把相关的手机号拿过去嘛,那如果说这种情况下,你有一个接口就容易暴露出来了,你有有一个接口去将将这个将这个手机号,然后呢铭文的方式去呃保存到数据库里,那这种情况如果接口被BOT攻击了,那他会可以给你随意去改这个手机号,所以它不安全,所以正常来说的话,就应该把这个code。
09:29
呃,直接拿过去,直接在后台保存完了之后再拿回来嘛,所以这种情况下就需要说我不应该在小程序端直接去获取铭文的手机号啊,就是如果说业务啊,业务上你你如果说只是保存用户信息的话,你不应该在前端去获取,完了之后直接从前端保存,这个的话是有那一个风险的,那正常如果说你是其他的,比如说你只是想验证这个手机号是否跟那个手机号,我提供的手机号对不对应,如果对应的话,就给你下一步这样子的话是可以放在小程序端的啊,这个这这这两个就是根据业务有安全性的一些区别,那如果说啊,假如说你想要把它放在一个后端,那后端的话就可以直接使用这个微信可呃,微信lo的server的那一个SDK啊,然后呢,具体的话在那个云开发的这一个,嗯,这一个叫叫叫叫叫这个文档里啊,文档里可以看到这里的开发者资源里边有。
10:29
这个SDK相关的一些文档,如果说你是自己的服务器里边的话,那具体的话可以使用这一个叫啊cloud bases的SDK啊,然后呢,具体的话都是有相应的SDK能够去帮你去调用这里边的一些接口的,那在这里我们就演示一下,在小程序中使用直接去直接去啊,在云函数中啊,在云开发的环境里边的云函数中,直接去调用它来去打一个达,达到一个这个中转的作用啊,我们试一下啊,就给大家演示一下如何去,呃,就是把这一个云模板安装的这一个能力,直接通过云函数来去做,那么我们首先建立一个clouds这个文件夹,它会自动匹配,如果大家不会匹配的话,那么点开这个project con Jason设置一下root啊,这一个这一个这一个叫什么路径信息,然后呢,直接写成我们文件夹的路径信息,然后这里。
11:29
的话,我们选择当前的环境,然后呢,创建新建到EJS函数,我们新建一个靠,然后呢,它就会自动给我们上传在这里我们直接进去,我们直接从这里我们直接获取啊,我们不管它,我们直接通过这里,我们直接通过close的点儿什么呀,Ion, 也就是说把我们刚才这个这这里边儿这个东西拿过来,Coion coion, 然后呢,这里invent.code对吧,所以我们就是invent.code,嗯,invent.code啊invent.code好,然后把相应的结果给它拿回去,嗯,格式化一下,好呃,直接a wait wait直接返回啊,直接返回它的调用结果啊,然后我们更新一下,更新一下,更新之后我们就已经,呃已经有了一个这个云函数了啊,相当于在云函数中,我们调用这个小程序的云模板,好,那么接下来的话,我们把这里改一下,我们就直接改成什么呀。
12:29
直接改成靠,因为我们自己的原函数了嘛,对吧,然后下面的这一个data里面,我们直接也是code的,那这样的话就跟就跟这里对应了,就跟这里的它对应了,对吧?啊那么我们直接啊直接弄,那当然还是失败的,如果你是一个非个人主体已经认证的,那就会成功啊,然后呢,他就会给你返回啊相应的结果,那么它返回的这个result里边,然后呢,还是错误的对吧,还是错误的对吧,然后呢,你就可以了,就可以了,为什么它这里嵌套一层啊,是因为是因为什么呢?是因为他返回的时候,我们刚才返回的时候是其实是他嘛,是他,然后呢,我们又没有直接解出来,我们直接又返回了,所以又中间又嵌一层,所以外面这个ER messageage request的ID是什么呀?是你靠原函数的这一个就是外层,外层的信息,然后里边这个信息呢,是cloud base model的云函数的外层的信息。所以如果说你感觉很。
13:29
膈应的话,那你可以直接直接这样,我把result啊,就是result给它截出来,它返回的时候肯定是有个result嘛,然后呢,我们直接返回return啊result好,那这样的话我们更新一下啊,我们更新一下我们再去调用啊就就可以了啊,问题就不大了,嗯啊更新一下啊,获取手机号啊,那这种情况下,那这种情况下还是不行啊,再等一会儿啊,等它更新啊啊这种情况下我们就已经对了啊,就相对来说,我们把把已经把里边的这个信息解构出来之后,我们就直接返回它,那就没有刚才的这一个,呃,外层的嵌套什么什么这个东西了,就已经达到了一个水平,然后这个时候你就能够在前后你去设置什么逻辑,比如说获取了之后,我直接先去,我直接把这个信息拿出来,我直接在里边保存到数据库,然后返回一个code=0啊,那。
14:29
这样的话,前端就知道,然后已经获取成功,然后呢,已经保存成功,就直接把你的这个获取手机号的逻辑跟你保存用户信息的那一个逻辑合一块儿,然后这样子的话,就已经达到一个呃比较业务安全的一个目的了啊,如果说你的业务是其他的,比如说呃,两个手机号相匹配啊这种情况,那就那就没没必要去搞这个东西了啊,所以如果说有需要有云函数的需要的话,就是我也要给大家演示了,怎么去使用,然后呢,如果说你只是在小程序中调用也可以啊,就是小程序调用也能够调用啊,在这里啊也能够看到,好,那么我们本节就讲到这里了,那么如果说你想关注其他小程序云模板的一些呃,相关的一些知识内容,可以在系列课程中去找相关的一些课程来去观看,好,谢谢大家。
我来说两句