00:00
下面一步呢,我们做一个这样的事啊,我们要去做一个功能叫做获取token,获取N,好,这个东西是干嘛用的呢?来看一下它到底是怎么介绍的,好在我们的这个技术文档中开始开发中,这里有一个获取N是不是我们来到这个开发者文档这里看一看,好这里面呢,介绍了一下我这个它是干嘛的?来第一句话叫做它是公众号的全局唯一接口的调用凭据,哎,这是什么意思呢?全局唯一这个特点是不是说明它一定是唯一的,唯一的这个特性接口调用凭据什么意思呢?就是你要调用接口使用的一个东西是不是凭据,就是你要根据这个凭据,他才能够承认你的身份的合法性,才能够真正使用这个接口,是不是说白了就是它相当于是个钥匙,它相当于是个钥匙,那微信服务器这里有把锁,是不是你呢,必须要有对应的钥匙才能解开这把锁,才能够成功发送请求,是不是如果你没有这个钥匙,或者说钥匙不对的话呢,你是不是发送不了啊啊是这么一回事,所以说呢,它呢是公众号唯一的一个接口调凭据。
01:25
也就是说我们待会去使用微信公众号提供给我们的接口的话呢,啊,基本上都得携带上这个access这个参数,只有携带上这个参数,并且这参数是正确的情况下,你才能够成功调用这个接口,所以说呢,我们呢,在实现这个后面的这些功能之前啊,我们首先就要想办法,是不是先获取到它,有了它我才能够成功发送请求,才能够调用接口啊,所以说我们要去是获取它,获取它的有哪些要注意的呢?我们往下看啊,然后呢,它说它的储存呢,至少要有512个字符空间是不是有大小呢,它至少要512以上,那么它的有效期为两个小时,诶什么是有效期呢?
02:13
说白了,这个东西是不是待会儿你要获取啊,获取之后它有效期只有两个小时,两小时之后呢,就没效了,需要你重新获取是不是,哎,这里我们知道特点,它呢有效期是两个小时,那我们把它通过特点总结一下啊,咱们呢,待会写个零三,零三呢叫做是获取。To k好获取好正在复制中啊,然后呢,我们去把它的一些相应的内容啊,把它整一整啊,这个应该是零三,把它重命名一下,咱们写的第三步啊,好,这些呢,全都close close on,然后呢,看一下我们就在这个wech里面,待会呢新建一个文件,我们去专门去做我们这个S,比如说就叫A,就叫这个名字可以吧,那我们小分秘密法。
03:10
好,就一个这文件,是不是我们在这里呢,就做一个这样需求获取。Access token好,现在呢,我们刚刚看到一些东西啊,就是access token,它是什么东西呢。他是微信啊,调用接口的接口的全局。唯一凭据是不是唯一凭据好是个这样东东,那么它有哪些特点,我们也来看一下啊,总结一下它特点,第一个呢,它特点是从这句话来看啊,它是必须保证它是唯一的,是不是好。第二特点,我们刚才看到了,它的有效期为两小时啊,有效期为两小时好,也就说我是两个小时之后就要去重新请求他,我求他啊,重新请求他,那这里我们要注意就是诶,难道我们是等到真正的两个小时之后,比方说啊,我七点钟请求的这个是不是,难道我要等到九点钟再重新求吗?
04:21
是否是这样呢?啊,如果不是我就我就怎样。哎,有人说到了,我是不是要提前一点时间提交啊,为什么要提前一点时间。你想一想,比如说我七点钟请求的是不是好,我呢,用户呢,我这个意意味着我是不是08:59,我是不是还能用啊,好这时候还用,假设这是59分50秒啊,敲死01:50秒,这时候我发请求,对于我本身来说,我一着他,我是不是觉得它是有效的,没问题,但是我发送请求过去是不是要时间呢?好比方说消耗十秒,他到那里了,已经九点。
05:02
啊,发送到20秒九点十秒钟了,是不是好,对于我微信服务器来说,他觉得他这个过这个东西已经是不是已经过期了,所以说呢,这时候是不是会产生这个时间差,会产生一些问题啊,咱们说的是20秒啊,可能会产生到一分钟啊,或者两分钟也有可能,所以说呢,我们不能说准确的在球点钟去冲气球,我们至少要提前一点时间,是不是,所以说呢,我们这里就说提前。多久呢?不用提前这么久啊,提前五分钟就可以了啊,提前五分钟起球就好了啊,提交半小时有点奢侈啊,提前五分钟就行了,因为咱们这起球都会有时间那个效应的,就是比如说你两分钟之内没请求下来,是不是他就会直接报错的,就不会让你再起球了,总能会这样,所以说我们就提前五分钟去请求我们这个。那么接下来再来看啊,那咱们接下来它还有个特点啊,还有个特点我们再来看,这里面呢,也介绍一下啊,它的第一个特点呢,他说它是唯一的,所以说你要保存在唯一的一个地方,也是刷新,否则会产生冲突啊第二个呢,它的有效期是7200秒,是不是就是字段名的叫刷啊,待会呢我们看到啊,他说呢你呢,他会保证什么五分钟之内呢,新脑脱粉之用,那我们为了保证它确确实实能用的话呢,我们最好还是要提前去刷新,是不是我们就做好提前五分钟刷新是不是好,就是这些内容,这些就是我们要用的,然后下面呢,就介绍它是不是发送请求的方式啊,发起求方式啊,这就是接口文档啊啊除了这些特点呢之外呢,我们还可以看一下啊,在这个接口权限中啊,它也权限这里写的获取,你每每天最多调用2400,是不是,比如他这个接口呢,本身获取它的接口权限呢。
06:54
每天。是不是最多2000次啊,2000次够不够用,绝对够用,你想你两个小时请求一次,你是不是一天最多最多也请请求个13次左右啊,你看才使用13次,他提供给你2000次,所以说是绰绰有余了,是不是,但是呢,你一定要想办法,是两个小时之内只请求一次,如果你每每发一个请求,你都请求一次,那你这2000次呢,是不是一瞬间就用完了,你2000个用户,他每每个人发一个请求是不是就没了,所以说呢,我们一定要想办法把它缓存下来,是不是要缓存下来啊好,这是它的一些特点,那么接下来呢,我们再看啊,他的请求方式呢,在这里写了,它呢要发送的是一个get请求,下面这个是不是请求地址啊求地址,其中呢,这里面请求地址呢,有其三个查询字符串的参数,看到没有。
07:48
一个是这个东东,一个是APPID,一个是是不是它在下面呢,都给你介绍好了,其中呢,第一个参数呢,是固定不变的,它要求你这个参数的这个写法呢,就是这个东西你不要去变它,而第二个参数和第三个参数呢,就根据用户的不同就不一样了,我是不是要填写自己的APPID和APPC是不是,那你们不要填写我的啊,注意好,这是请求的地址,是不是请求的地址就是这个地址是不是请求方式呢?是电子请求,好,这是我们看到的一些东西,好接下来呢,我们去想办法去设计一下这个东西啊,我们想一想设计思路,我们该怎样去实现一个这样的一个方法去做这个事呢?
08:39
你想我待会儿我我现在就会考虑一些这样的事情啊,考虑这样事情,我到底该怎么去实现这个功能,我要获取它,我怎么去实现它。来想想我们呢,就先考虑一下这样的场景啊,首先第一一上来的时候,首次我本地有没有呢?没有是不是首次我本地没有,本地没有,所以说我要我要发送请求是不是获取啊,然后过去之后我还做什么事吗?
09:17
获取它来看啊,获取它之后呢,是不是它会返回给响应给我啊,返回响应给我,那这时候就有个问题,因为呢,我是两个小时之内是不是只能祈求一次啊,所以说我这个东西呢,要想办法将它给是保存下来啊,啊一定要把它保存下来,这时候呢,你才能直接复用,是不是不保存下来,你压根没办法复用,所以说一定要想办法把它保存下来,好,这时候呢,我们就得考虑我们把它保存为什么东西。全局的一个变量是不是可以保存,全局的变量可以保存,但是呢,不太安全,因为这个变量呢,它随时可能被别人修改,被别人替换,被别人删除掉,它不够安全,安全性不够高,可能会出现问题,所以说在这里呢,我们把它保存下来,保存什么呢?保存为本地的文件。
10:10
本地的文件的话呢,它只能提供某些接口去能够使用的,其他地方都使用不了,也说默认情况下呢,这个本地文件呢,是不可能被修改的,只能通通过我到后面设置的特殊的方法才能够去做,才能够操作这个文件,所以这样保存下来的话呢,首先我能够确定它是个唯一的一个文件,到时候去保存一个文件,另外呢,我能够保存下来就不会在在两个小时之内呢,就不打算修改它了,那这样的话呢,能够去保证这个有效期两个小时之内呢,能够去反复的复用这个文件里面的内容,是不是能够去复用这个内容,好这呢是咱们首次做的操作,那么接下来呢,我第二次跟第二次之后呢。我还要去发送请求获取,是痛吗?那我该怎么办?
11:03
我首先要做什么事?我首先是不是本地有这个东西啊,那我要去本地啊,去本地读取这个文件,是不是我去读取文件,然后呢。我读喜欢获取到它了,是不是我直接使用吗?直接使用吗?不是,那我要怎么办啊,判断它是否过期了,是不是是否过期。这1.1定要判断,因为可能有个请求是两个小时之前发送发送的,那这时候我保存下来了是不是,那可能他两个小时之后是不是才发送啊,此时是不是过期了,所以说我一定要判断它是否过期,那这时候就有两个结果,一种结果是过期的,一种是没有过期,我们先讨论没有过期的,没有过期怎么办呢?没有过期怎么办?
12:01
直接使用是不是不用考虑了,直接使用好直接使用,那如果过期了,我怎么办呢?就要重新请求获取S头N,另外呢,保存下来覆盖之前的文件,是不是覆盖之前的文件保存它是唯一的,是不是在这里呢?要保证文保证文件是唯一的,从而来保证你这套Ken是不是唯一的,保证我们就是唯一的,比如待会呢,我们是不是可能会遇遇见一些这样的思路啊,一些这样思路,好,那我们把它给稍微整理一下,整理一下,整理一下这个思路,我们该怎么做呢?我呢,因为待会这样去判断不太方便,他待会要走两条路,我要判断他第一次有没有,还判断他第二次或者第二次以后,那这样呢会相当麻烦,我呢不想这样去这样判断,我呢去想办法让他只有一条路可以走。
13:06
怎么办呢?来看啊怎么办,我们来看他呢,是不是一上来需要获取我才搜的,那么第一步呢,我直接去本地读取本地文件,读取本地文件会有两种结果,一种是本地有文件,是不是,第二种呢,是我首次的时候本地没有文件,没有文件什么场景呢。是不是我第一种场景啊,我压根没有请求过,所以说我是走这一步,我走这一步本地没有文件,我走这一步我重新请求,发送请求或取,然后保存为本地文件,是不是,那此时此刻保存下来之后呢,这是我第种场景,保存下来之后,我是不是直接使用这个直接使用,因为我是刚刚请求下来的,可以直接使用,那么可以啊,直接使用好,这里对应的我本地有文件,我得怎么办呢?啊,我要判断它是否过期是不是,那这里是不是又有这两条路啊,有这条路啊好,这样呢,我就将之前的我要判断两条路的情况呢,就整合在一起,我通过读取本地文件的时候呢,来去做好以下这些处理,是不是做好以下这些处理好,那这个呢,就是我们整体的设计思路,好,大家呢,那我们停一下啊。
我来说两句