00:00
接下来一个呢,我们来看啊,接下来呢,我们把这个获取临时素材就行了,这个获取临时素材呢,就能根据你的之前上传的媒体ID,你可以去微信服务器中拿到你之前上传好的这个素材,把它呢通过以文件的方式下载到你的本地来。所以说这时候呢,又面临着不一样的请求方式,以及不一样的接收响应的办法,我们来看一下啊,首先前面呢都是一样的,前面介绍都是一样的,跟咱们临时诶,咱们来获取临时素材啊。来看一下它这里呢,首先他也说了,视频文件它是不支持HTPS的,它只能支持HP协议,比如说咱们是不是有四种文件,其中有一种是不是不一样的,有一种不一样的啊,然后另外呢,这个请求方式呢,是。Get,然后请求参数呢,有。两个一个是是不是啊,咱们的凭据,一个是你需要下载的这个媒体文件的ID,是不是媒体ID,好,它这里呢,也是通过这种方式去上传下载。
01:06
啊,也是要通过这种方式下载,也就是说呢,待会儿呢,我们就要想办法去获取到这个多媒体文件了,诶这种方式到底是怎么方式呢。它这里参数也只要求我传这个是不是,然后呢,直接是返回说明了对不对,说明我是不是没有其他要传的参数了啊,没有其他要传的参数了,他已经把参数全都列举出来了啊,就没有了,那么我们就要考虑好该如何接触它。我们就没办法用普通的方式接收了,因为呢,它返回过来的时候呢,我们经过测试发现呢,是一个。的咱是式是所以呢应处理它才能接受好,这是这个,然后另外呢,他呢说了其他素材呢,都是以流程方式返回的,但是呢,这个素材视频素材呢,它返回只是一个。
02:03
下载地址是不是这个下载地址不一样,所以说我们针对视频是不是要特殊处理啊,要特殊处理才行,好知道这个接口了,那接下来我们写一写。我们大家写一个。获取临时素材的方法是不是叫做get temporary material啊?好,这里面我们需要传什么参呢?哪些参数需要传?类型需不需要传?想想。需不需要?这个类型是用来决定什么呢?首先我传三的时候是要需要传类型吗?不需要,是不是我只要传了斯NID,那么我这个类型是用来干嘛呢。是在判断什么事呢?
03:04
说白了就判断它到底是视频文件还是不是视频文件,是不是,我就想判断这两件事,你是或者不是别的呢,我都当做你同样的处理,唯独视频文件我要特殊处理,它的请求接口不一样,它的返回值也不一样,是不是,所以说就这个需要处理,所以说我还是要需要传出type,我要判断出来到底是不是视频,除了type以外,我还要不要传三。要不要?还要传个参数,那要传个什么参数。就是我们你是不是要告诉微信服务器,你要上你要获取的素材是哪个素材啊,那你要告诉他获取哪个素材,你要传的参数是啊,媒体ID是不是媒ID,你要传这个东西,他才知道你要上传的什么素材,好待会咱们是不是也要发自己哦,所以说呢,我们又包装一层。
04:00
Promise项啊,咱们先把这套写好,再去写其中的内容就可以了。都好了,接下来在这里面写,因为我发送的话呢,我这里就把它改成函数了,好在这里面接着写呢,也去先去获取这个地址,定义这个启动地址啊。好,起交地址呢,我同样的在API文件中呢,我也写一写,这一次呢,我是get的起交地址。好,它呢跟上面的类似的,只不过我这个lo应该要换成get,我可以看下media是是我看一下是不是media是不是get,换成get就行了,那么我们这里呢,就要去拼这个串啊,定义这个ul地址,等于呢这个东西多少符大括号API点。temporary.get是不是好?他们需要传递两个参数,一个参数是。
05:01
啊,然后呢,是不是又要获取啊,所以说呢,我们又得获取它啊获取。啊,所以说写来写去呢,其实到后面都差不多啊,获取下。好,那一个等于一个咱们的好这时候就有了,有了之后呢,就加这个值呢,放过来是不是奥斯托好,除了这个参数托以外,还有什么参数。还有那个媒体ID是不是啊,注意就是咱们这里用的小同文运营法,但是它呢。它不是,它不是小的幂密法是不是它的是。嗯,应该是media_ID应该是mediad,看一下是不是media下线ID啊,所以说呢,要注意啊,多符打括号没did,我们传入的没did是不是好了,这是请求地址,但是但是这请求地址呢,一定是这样的吗。
06:11
它默认是。HTPS协议是不是,哎,但是其中有一种视频它需要使用HTP协议,所以说我们不能确定它100%是这个是不是,那我们用在这里面呢,我们判断。它是否是视频文件,是不是是否视频文件,那么就是if type等等,等于是不是VI,好,如果等于video是不是这样处理,如果不是的话,我是不是另外一部分处理啊好了,那在这地方呢。我呢先去处理这个视频,视频呢可能比较简单,我呢是不是要改变这个URL地址,怎么改变呢。我无非是想将HTPS换成HTB,我能有什么办法?
07:04
我难道又重新定一个接口,又重新写一遍吗?这太麻烦了,我无非就是有一个是HTP,有一个是HTPS,我能不能借助哪些方法能够去做好这一个呢?什么方法可以做好这一点?L是一个什么值?什么类型字符串,是不是字符串上面有没有方法可以改变这个式呢?有个方法叫做什么?看叫做replace方法,它是不是能将你传入的,你想要替换的这个HTTPS,哎,咱们写完了一点,就这个是不是要替换成HTB呀,是不是,那你这样替换一下不就可以了,这样我这ul是不是就解决完了啊,这里面要说明就是视频文件只支持。
08:03
请求了,好的请求就是用咱们的RP这个库是不是好,这里面就method为。Get是不是,然后呢,Ul地址第三个呢,是为然后呢,拿到它的回值,一个贝等于这个它的返回值,这个塔是不是就是我最终返回的值,那我就要将它给这是返回出去啊返回出去怎么返回数去呢,调用。So,方法是不是将这个让它返回出去啊,好,最终是不是返回一个地址给我,Ul地址给我啊,最终呢,返回一个ul地址给我,好,这是我们视频文件是这样做的,哎,但是呢,我们下面这些其他类型文件就不一样了。其他类型文件的话呢,如果我通过这种方式发送请求,我拿不到想要的值,因为它返回是象它只能接收到一部分值,接收不到全部的值,甚至呢,这个值都是一个空的。
09:08
那我们就没办法通过RP库去实现了啊,这里面呢,也是通过查文档啊,这个文档都给大家看一下。啊,因为大家呢,一定要自己去看一下文档,文档说呢,我们可能一开始能找到是啊request promise这个库,那这个库呢,他告诉我没有你想要的东西,然后呢,但是呢,在这里面提示了一下在哪里有啊,所以说我们可以看一下。IQUEST。嗯。Request promise,哎,其实呢,Request和request用的文档是一个文档,我们可以看一下啊呃,他这里应该会说明说明说清楚的。嗯,还是给大家看一下这些文档呢,大家一定要自己去看一看。好,看一下这个文档。
10:04
这个文档呢,来看呢,会告诉你这个呢什么呢。相近的是不是这个当前这个包,就是这个包,它和request是不是一样的,只不过呢,当前这个包呢,它使用的是原生的YES6的promise,说白了就使用mode JA的promise,所以说呢比较好一点,而这个request promise呢,它是借助啊一个实现promise的一个库。来实现这个promise的,所以说就不一样,那这样就会导致他们库的大小不一样,那现在呢,因为我们广泛都支持promise的,所以说我们就使用这个了。好,他又会说请参考request promise的document,是不是?他说请参考这个request promise的文档就可以了,它这里面文档列的很少,所以说你要参考promise的文档。啊,这里可以点进去吧,应该是啊,点进去这个文档,好在这文档里面呢,我们是不是要找啊,那在这时候大家看一下我们的phone表单的方式啊看在这里告诉你怎么去发送一个正常的请求是不是,然后呢,下面呢,他说发送一个更好的请求,是不是better啊说白了就是将那个option是不是提取出来啊,他认为更好一点,更好一点,然后呢,再来按照这里发送一个一样的一个数据是不是啊,这里就告诉你查询做出呢,可以通过QS去发,然后呢,你这里调调为为是不是为处,然后再往下走。
11:36
嗯,这里面也介绍一些相应的内容啊,然后这里是告诉你POS起球的话呢,你要在起求体中发送数据,是不是在body中发送数据,然后呢,再往下走,然后呢,这里面就告诉你怎么去使用HTML的form表单的方式发送,是不是form啊,这里面呢,它介绍的是find这个name file,其中呢,在这里面还有options,有value,只有options是不是在这里面还可设置啊啊,一开始呢,我的确是采用这种方式,然后发现呢。
12:04
报不了他呢,接收不到他也没有,他呢说你发出请求失败,所以说呢,我后面又去看了看文档啊,文档上面没有说,但是呢,我就去看了一下我这个微信的文档,他这里是不是要求我传个media,那我就尝试着,哎,我把这file改成media看下行不行,还发现呢还行,所以说就实现了这个东西啊,所以有时候呢,还是要自己试一试才知道到底怎么回事,然后无非就是发送form表单的时候呢,其实默认它就会设置一个摄像头。这也是我们htl form表单的时候,它设置的一个头,传type为这个OBX3W form u codeed,是不是就是个这样,所以今后大家看到这个头的话呢,说明这个请求方式呢,这个请求呢,就是一个表方式的一个请求,就是这样请求啊,就是这个头呢,大家一些常见的头,大家也能看得到,也要能够看得懂啊。
13:01
然后呢,再往下走,下面的他就介绍一些cookie相应的一些东西,可以设置的东西啊,那呢,我们找找找找,没发现有任何能够去处理好我们那个流的方式的,但是呢,在这里大概给你介绍一下。嗯,搜条搜了很久,然后呢,我在里面是搜这个叠方法,他呢这里面介绍一下,然而呢。牛呢,这个请求呢,在这个里面呢,它是不支持不能够使用的,所以说呢,他呢,给你告诉你,他有没有告诉你啊,他说呢,使用这个原原来的request库做这件事,是不是使用原来的request库,也就是说咱们要想去梳理好这个问题的话呢,只能使用。诶,咱们一开始一直下载了没有用的request for,它就能解决这个问题啊,现在就来了,它它呢跟我request promise不一样的地方就是它的返回值就是一个以回调函数的方式去解决的,它就没有promise项了,他就能解决这个流,解决这个流的话呢,我们看这是不是stream啊,Stream就是流的意思,通过请求的时候,是不是点派方法就会以写好了,它呢,会将这个数据呢导入到这个管道中,说白了请求回来的数据呢,它变成一个可读流,然后通过派方法呢,导入到你一个可写流中,最终是不是写入到文件中啊,写入到文件中啊,最终我们就这样去处理好的。
14:22
来现在呢,我们就去其他类型,其他类型文件发送请求方法就不一样了,它要借助的是request库,是不是那对应的呢,我们就得把request库给引入才行啊。Co e等于。Request。啊,所以说今后呢,大家遇到问题的话呢,啊,一定要仔细的看看文档,文档中呢,很可能会告诉你一些解决办法,那这个呢,就看你够不够细心去发现了。哎,我这里怎么去解决来着。嗯,我看一下真的,我我明明是之前就是按照这种方式去解决的。
15:07
RSCTRLLT加这个L键,我之前是这样解决的。嗯,是按什么。啊小键啊,这样就好了啊对好这时候呢,我拿到这个,呃,快库是不是快库有了,接下来去发动起球。怎么发呢?是不是他就只要传一个参数啊,你看是不是传这个请求地址就可以了,然后传求地址是不是直接顶派我就可以导入到我这个可写流中,所以说我这个可写流是不是也得引入啊。可写流也得引入啊,在我们的可读调中还得导入这个可写流才行,好接下来在最下面我们写request,咱们的这个URL是不是传进去点。PI是不是点拍好?
16:01
点P好,这里面是不是导入了可流啊,那就是。Stream是不是好,到时候是不是要写入到一个文件中啊,那么这一块呢,你也你也得帮我处理好,甚至呢,你还得传进来,告诉我是不是写入成一个什么文件啊,是不是,所以说这个东西你要传进来,因为待会呢,文件有很多类型,有什么JPG文件啊,有M,有什么MP3文件,有什么PG文件等等,是不是,那我这里不能写死啊,应该有用户到时候调用的时候呢,是不是传进来啊,你告诉我要保存什么文件,我就保存什么文件,所以说这里还得做加上第三个参数是不是好,那么这第三个参数呢,也得跟上面一样,是不是把这个地址给获取到了。一直得获取到,假设我们也保存回来,我们这个media里面,保存在media里面好获取到这个,那翻pass之后呢,是不是把这个翻pass传进来,传进来就可以了,好了,那在这里就有个小小的问题。
17:02
我这个时候呢,最终呢,它是不是会导入到这个流中啊,没问题,可以写入,但是呢,现在有个问题,就是我这个方法是个异步的方法。你应该告诉我什么时候它是结束的,是不是你得告诉我,那这里还有告诉我吗?没有,那我们怎么去界定呢?咱们之前创建流的时候,我们绑定了相应的事件,大家还记得什么事件吗?咱们打开的时候是不是叫做open啊,关闭的时候叫做close啊,咱们之前是不是叫做close事件,然后这里呢,是不是点。事件哦是不是啊,咱们呢,要首先这个事件它会被触发几次呢。是不是只可能被触发一次啊,啊,当然这里,因为它是在函数里面,你写one跟ones其实差不多啊,咱们写S吧,Ones close,然后在这里面呢。到close里面是不是说明我这个东西接受完毕了,全部保存下来了,那么我在这里呢,就会是不是要调用这个so方法,要O方法,而且这里是没有任何返回值的啊,因为呢,我只要告诉用户,我告诉外面这个事情是不是做完了就可以了,所以说我在这里传个O就行了。
18:20
它最后是不是会调用这个回电函数,从而调用这个solve方法,是不是调用so方法啊,这里是当文件读取完毕时。文件。读取完毕时啊,可会自动关闭的啊。自动关闭的是不是一旦关闭,它是不是会触发这个事件啊,触发事件啊,一旦关闭触发。Close事件。然后从而从而通知外面,通知外部文件读取完毕了。
19:01
啊,从而调用方法。So,通知外面通知外部文件读取完毕了啊。通知外部文件读取完毕了,好,那这就是这些方法的使用,那在这呢,我们就会发现。虽然是在一个文档上,但是呢,每次可能我发送请求的方式有get求有POS求有这种以phone表达的方式发送请求,是不是啊,有多种方式,另外呢,我接受响应的办法呢,也也有些不一样,有的呢可以直接接收,但是有的呢,我又得用以留的方式,是不是接收啊啊就不一样了,所以说呢,大家要能够今后要能够看得懂文档,要能够处理好这些问题。啊,说白了这些东西呢,都是一个个去试工作,根据工作经验积累,你才能够写的比较好的地方啊,那今后大家呢,应该要去看一看啊,这里我们呢就讲到这啊,停一下。
我来说两句