00:00
也就是扫码之后呢,进入到我们本地的扣back中,只要你把域名配置对端口号和地址正确,它就可以跳过来,然后跳过来之后在里边我们按照刚才咱的步骤一步来做啊,首先第一步操作先获取到。先获取到里边这个扣的值。就是code的值,咱说的它叫临时票据,类似于咱那个手机的验证码,是一个唯一的,就是随机的一个值,而怎么获取,在这个参数中咱加个string code就可以得到啊,这就是他的一步,这单完成了,然后得到之后我们看第二步操作。第二步怎么做呢?咱们就是拿着这个扣的去请求微信的一个固定的一个地址,然后得到两个值,咱刚才说过了一个叫a access token。A token。
01:00
还有一个值叫做open ID,就是咱们拿着code请求地址去得到两个值,最终做一操作啊,那咱们来请求一下啊,首先这里写到是一个固定地址,这地址不需要个位D,我就从课件中直接复制了,因为它是固定的,也就是里边的。这个地址啊,那我把这一段给大家复制过来啊,咱们写到这个位置。这里边啊,这个写法咱上午写过,大家看啊。A地址就是API,微信点qq.com,然后o to和set to在它后面需要传几个参数,而参数中这位置我也写了,叫百分号,S就是占位符,那在项里边可以拼参数,它需要具体说有三个,一个是微信的ID,一个是密钥,还有一个是咱们刚才这个扣的值,这单下面项里面就拼接上这三个值,就是ID、密钥和扣的。啊,这个写一下啊。就是拼接三个参数,包括ID。
02:04
密钥,还有里边这个。扣的值,那咱来拼接。不知各位是否记得啊,咱上午刚写过啊,咱们是用这个string里边的这个方法叫做form,在form里边我们传参数,第一个参数是你要这个拼的字符串,我们是它。然后第二部分是你的具体参数,因为咱有三个值,第一个是ID,那咱用工具类与工具类中咱都取过了,通过工具类取到那个微信的ID,这是第一个参数,就是这里边的百分之S中的这第一个啊,然后第二个百分之S里边咱取那个密钥啊,注意别写错啊,别写地址写的是密钥。然后还有第三个100S,我们取的是这个扣的,这样的话把值取到,然后取到之后给它返回一个值啊,就是我们最终这个地址。就他啊。
03:00
比如说这个地址,我给它起个名字,我就叫这个,呃,Access token URL。啊token u,所以这样的话,这地址咱就拼接出来了,在地址里边是它,并且参数中有咱们用的值,这个做到了啊有地址,然后有地址之后咱往下做,下面做什么呢。咱就需要去请求这个。拼接好的这个地址,然后得到它返回的那个两个值,就是咱刚才说的set ton和op派ID啊,咱需要做这事情,那咱看怎么来做啊。刚才提到,因为现在咱要去请求,并不是做regret,因为咱要在程序中得到值,还要往下执行,并不是直接请求到那页面,那咱该怎么请求地址呢?我们这位置中就可以用到一个技术来请求,就咱刚才说这个HTP。兰去发送一个请求,然后得到它返回的结果,用这个得到叫A兰,这个技术我强调啊,其实这个瑞兰应该是一种比较古老的技术,但是虽然古老,在目前依然适用,在很多地方,这个技术依然会用到,包括咱们现在做这个微信过程中就用到它,它的意思就是可以不用浏览器也能模拟出浏览器这个请求和小过程,所以咱们现在用它就可以发送请求做导,那这怎么用呢?
04:32
给大家说明啊,这个代码不需要各位去写一遍,我在今天的源码中的微信登录中给大家写一个工具类,咱把工具类直接复制过去就可以了啊,就直接用这工具类我们可以做到,但是工具类然后用的话呢,你首先需要引入一些依赖啊,因为它里边有依赖是咱们做到的啊,然后把这个咱先引入进来啊。就你按照我课件中的流程,每步应该我都有啊,那我把这依赖我就复制到我的U3中,因为只是它里面用。
05:03
就是这个位置啊,把这个输入过来。啊,就是啊,稍等哈,应该加一个那个dependence啊,然后加一个dependent。小这个位置啊。加一个dependence。这个啊,然后在里边再加上我们那个句体的值啊,就具体那几个依赖,我把依赖直接复制啊,就是目前有这么几个依赖,然后这个依赖我们看一下啊,首先其实依赖中啊,主要就是第一个第三个,第二个E不大啊,也放到这里啊,第一个就是HD client,然后第三个叫歌son首咱一会用那个Jason转换工具啊,这是关于针对他一些依赖的,就是IO相关的啊,主要是ST兰,还有这个歌森把它引入,包括它的版本号,咱当时在丰城里边应该都定义过了啊,咱们看一下啊。就是咱找到第一个HTP兰4.5.1,我们用的版本,还有一个叫歌森2.8.2,咱们都定义过了,所以在里边把这个引入就可以了啊。
06:07
这是咱做到的,然后引入之后,咱再来到我们代码中,在代码中呢,我们就从课件中把我这个工具类,咱给他直接复制过来。复制到我这里边,我们有一个U的包,直接放到里。把这个拿过来啊,这是一个工具类,然后复制之后,咱们把这工具类我们来看一下啊,里边是怎么写的,这工具类不需要各位去敲扁,我们用的时候各位直接复制掉就可以了,那我们看一下啊里边的结构。首先啊,这位置中有一些常量,然后咱看主要方法,它的主要方法中呢,应该主要有这么两方法,就是一个是get,一个是post,就是你发送get请求还是发送post请求。但是因为咱们现在我们是地址后面直接拼参数,所以这个请求肯定是get请求,因为post请求参数不是这么传,它在启用体重传递,所以咱这是盖的请求,而盖的请求中大家看啊,我这里边有两个方法,这是一个,这是一个,就是用哪个都可以啊,只是一个多了一个编码方式,那比如咱看他发送get请求,看他怎么做到的啊,我们点进去看这方法有一个get。
07:20
主要这个过程啊,那我们来看一遍啊,不需要各位写,但要能看懂,然后他怎么做到呢?首先你看啊,先扭了一个叫htp get对象,里边有你那个对应的那个请求的地址,然后完之后下面就是项,里边设置一些相关的参数,比如说什么超值时间,连接时间与什么访问协议等等。然后这些都是之后,咱下面就可以发送这个请求,然后做操作发送请求在里边有个方法啊,就是这个方法。叫xic code,或者说把这个发送请求,然后发送请求之后得到你的返回值,就是htp response,通过这个返回值得到我们的结果啊,就是里边的result,就是最终的结果。
08:07
然后这个结果大家看一下啊,里边有这个结构。不知道各位是否能看懂啊,这个问题呢,我在之前有一天课中提到过啊,它涉及到的一个知识,就是咱们之前还是外部学到这个叫。HTTP协议。不知各位是否有印象啊,我来说一下啊,HT协议中是不是有请求跟响应啊,响应中有响应行,响应头,还有一个叫响应体,响应体就是它最终在页面中显示内容叫响体,而这个代码中取到就是你看啊,Get anti体,包括content,就是取到你最终那个想体的内容,把内容得到,因为这个内容就是咱们最终返回的数据,然后把result返回就可以了,就是一个。字符串啊,这是它工具那种方法,所以咱们用的话直接去调里边的get方法,然后传你的那个路径,并且拼好参数,最终返回的字符串就是它返回结果,而这方法又是一个静态方法,所以咱们通过类名点方法名字就可以直接调到啊里边就这么来用,这个咱们给他能看懂可以了,不需要各位去敲扁。
09:17
啊,在这个我们做这个说明,然后说完之后,咱们现在来到我们的代码中,我们用这个方式来做调用,是我刚才提到的啊,我们用一个叫HTP。这个us啊,注意别选错包,因为别的包中也有,但是这个我们项目中这个us在里边,咱们用个提交方式就是get提交在get中的传递与刚才拼接好的参数,就这个a set to ul啊,注意别传错啊。这个参数,然后传完参数之后,它最终会返回这么一个结果。就是我们的这个结果啊。那这结果,比如说我给他一会儿这个输出啊,叫a set talking这个啊是一个请求,然后在请求中呢,这里边有异常来给他写到一个揣开里面去啊,就是捕获它那个异常。
10:11
那我来一个拆开啊啊,当然后面也会有拆开,那我就统一写一个。大的一个拆开纸啊,都写到这里面去,因为后面也有这个异常的补货。我来一个check里边直接写它的exception,然后把这个代码咱直接给他先拿进去啊。放到D位置,所以这样的话,这个请求过程就完成了,发送一个get请求传递址,最终根据请求中把咱们的结果得到,因为这个请求是由微信提供地址,你只要把参数提供好,它这个地址中也是这个接口中把数据给咱返回,咱们把数据就可以得到。这样的话啊,咱们就把我这张图上的。第二步就得到了啊,这个过程就完成了,然后这里边有个返回值,咱们把返回值,比如我现在做一个输出。
11:02
啊,一会儿咱们看结果啊。我输出一下。我就叫a token info。然后后面加上这个句子值。这个啊,咱们就完成了第二步操作,得到code,发送请求,然后得到access token和open ID,在字符串中就会有这么两只。这个啊,来写代码。然后咱们写完之后啊,写到这里咱们先做个测试,看目前的效果会有是什么样的,然后咱再往下进行实现,这过程一会我最终再总结一下啊,咱先把流程先给它完成,比如现在我们到的应该是这个步骤啊,把这个得到了啊,那下面咱们来看一下结果啊。我现在把服务器重新启动,然后咱们还是通过二维码界面,一扫二维码,它会到这方法方法中把这值我们给他做个输出。咱们马上试一下啊,我先启用起来。
12:02
啊,咱等他启用成功啊。啊,这个啊,应该是启用成功了啊,我把这先清掉,咱们还是回到我们的页面中,在我们的页面中的这个位置,我先访问那个二维码的地址,就是这个8150。这个地址,然后地址之后,我现在扫一下这个二维码,然后我点手机上的同意,咱就看控制台的输出啊,因为页面没有写完,大家看控制台,在控制台里边大家看到啊,目前这数据应该就返回了,它返回到就这个值,这是那一段字符串啊,那咱把它拿到这个文件中,我们看一下这个纸啊。呃,这个我先去掉啊,咱刚才说过了,看它把它我先往下给它稍微调整一下啊,咱看这数据是什么样的。往下调整一下啊,因为它就是一个字符串里边是KY啊这些值。
13:02
然后里边就是。这些啊,那我们来看一下这个值是什么样的啊,首先第一个返回的肯定是一个字符串的形式,因为我上午说过啊,在咱们Java端它只叫字符串,Jason也是字符串,在前端才叫Jason,所以它反而是一个Jason的字符串形式。然后在里边咱找两个主要的值,一个叫access to,大家看是这个东西就是一个访问凭证,它有一个随机的唯一生成字符串。然后看第二个叫open ID,这是什么呢?就是你的微信ID,每个人微信都不一样,谁扫的那就是谁的微信ID啊,这是两个值,是咱需要的,然后气压值咱也看一下啊,这是什么呢?就是你这个凭证不是一直有效的,它有一个过期时间啊,包括这是你刷新之后,它又生一个新的凭证啊,就这个纸,但这个地方用不到啊,这是你这个有效时间,然后下面有它的作用范围,包括它的作用单元等等啊,主要在用的是和size token和open ID,这样的话这个值就得到了啊,所以咱通过这个。
14:10
调用把两值得到这各位给他知道啊,就咱们这个过程,然后得到之后,咱下面往下来看啊,大家注意啊。因为我们现在呢,这个是一个Jason的字符串,就是它是一个字符串,但是咱们下面要请求,我是要把里面这两只给它取出来,也就是把这部分值,还有这个值给他要拿出来才能发请求,那现在这字符串咱肯定不能直接发走,你需要把两只给它获取出来,那咱看怎么来做啊。往下写下。这个a set token info有值,然后咱们需要从这个set token info这个字符串里边获取出来这个两个值。两只拿出来,一个是to OK,一个是op派D啊,那我们看这该怎么给它拿出来。
15:05
各位可以考虑一下啊,这怎么拿出来。我强调啊。方法肯定有很多种方式,首先第一种方式是一种最原始方式,大家看啊,就是我数据是KY,而每个结构后面。是不是一个逗号啊,那咱可以根据逗号把这字符串做个分割,然后你取到里边的第一个,还有这个第四个把值取到,这么做可以,但是这么做啊,肯定很不好,你还要分割,还要取某几个值,肯定不方便,所以大家用一种比较通用的方式,那怎么做呢?给大家说明啊。第一个各位看它的结构。因为咱都知道Jason的字符串的结构是不是就是key value key value,这是K,这是value,这是K,这是value k是固定的,Value是每次随机生成的key value这个值,所以咱们第一步操作怎么做呢?我现在可以把这字符串转换成一种结构,然后更方便取,那大家看啊,它可以变成什么结构?
16:02
其实咱可以想一下,咱们什么结构是KY6 KY6结构。是不是只有map呀,咱写的map是不是K流,所以我们现在要怎么做呢?咱就可以把这个字符串先给它转成map集合,然后通过map的K得到它的值,比如说map,这是K,根据K把它得到,这是map中的key,根据这个K把它可以得到啊,所以我们现在可以这么来做到。然后写一下啊。做法就是把咱们这个access token info这个字符串。转换成一个map集合,然后根据map里边那个K。就可以获取到它对应的那个值,啊,现在我们就这么来做,那怎么转换,咱就需要使用到一个。Jason的一个转换工具了,这工具有很多,比如刚才我说的什么fast Jason,什么杰N,但是咱现在给大家换一种方式,咱用这个东西。
17:00
叫格森,用它做转换,这一代实际中也比较常见,因为它很简单,而这歌森呢,咱看一下刚才的依赖中就是这个依赖。大家看啊,这很熟悉。这谁?是不是谷歌呀,它是由谷歌提供的这么一个转换工具啊,所以很多人特别喜欢用,因为谷歌嘛,很有名嘛,也就是说啊,有这么一个笑话嘛,你说一个人问各位啊,咱说个题外话,大家说一个人怎么能够快速成名。或者说怎么能够快速身价倍涨?一个最简单方式啊,就是你嫁入豪门之后,是不是马上身价倍涨,比如说你现在找一个豪门,你入住入入赘的人家,或者说你怎么怎么样,比你怎么样了,那这时候你身价肯定倍涨,包括所有人都关注你啊,所以同样的道理啊,其实歌森呢,有很多插件跟它都差不多,他并没有多么强大,因为它是谷歌的,很多人都喜欢用它,因为谷歌嘛,实力不庸置疑啊,就是嫁入豪门,所以很多人都喜欢用啊,咱现在用它,但用别的工具也一样啊,因为都能做转换,只是咱们把这些技术给各位都去用用。
18:05
实际公司里面用哪个看你公司,但是用法都差不多,那咱们看这怎么用啊,用法就是咱简单看一下啊,很简单,第一个。你先new这个对象,然后用你的方法叫from Jason,把你这个就是字符串变成你的结构,这些你结构的class就可以了,就这么来做。那咱们来写一下啊,做法就是第一步new一个。就这个啊,但是你需要把依赖先引入啊,等于new上一个个。这是他的第一步啊。就串一个对象,把依赖我们需要给它引入,然后导他的包,然后引入之后咱们调用歌森里边的有个方法。这方法叫做from Jason。就这个方法啊,From在里边我们可以有两个参数啊,就是用到这个两个参数,第一个参数是你要转换的字符串,因为咱是a set token info,把这个传过来,然后第二个是你转的类型,然后变成麦,我就写一个叫。
19:12
哈希map.class变成你类型的class啊,就这个结构,然后最终它返回到就是一个map,给map就可以把我们的字符串变成一个map集合啊,咱现在就这么来转换,直接用这个方法可以得到。那咱现在啊就做到了,我把名字呃,稍微改一下啊,我就叫map这个。Size。Token啊叫这个名字,然后这个转之后,现在map中有咱数据,然后咱就可以根据map把里面值取出来,那怎么取呢?Ma中肯定是KY6嘛,那我加个get。加上它的key key的名字是固定的,到里边复制,这是第一个size token。这是第一个啊,然后给它得到这个值,然后还有第二个叫那个open ID。
20:05
把这个啊,我们给它也是复制一下,就是里边的。这个名字,名字肯定是固定的,各位写的时候最好也直接复制,你敲合没错,所以现在两只得到了啊,但是呢,为了方便给它直接变成个字符串类型啊,写object也可以啊,咱就变个字符串更方便我们使用。这个啊,包括这里边需要做一个强转变成这个走账。这样的话咱们就完成了。比如说这是我们做的第一步,第二步啊,我们再看一遍啊,第一步就是得到code,然后第二步拿着code发送请求,咱用HP可按的方式请求得到我们的字符串,得到字符串之后,把字符串里边值取出来,但是怎么取用了一个歌,把它先变成一个map集合,然后通过map中的key把值取到,就是一个a set to,一个叫open ID。这样的话我们得到了啊,所以咱们的第二步完成了,然后完成之后咱下面做的就是第三步,包括最后显示第三步肯定还是要再请求一个地址,写法跟刚才基本上一样。
21:10
那咱一会儿把这实现啊,所以咱们现在是完成了第二步操作。
我来说两句