00:00
好,那我们接下来呢,要想办法做件事啊,我们呢,这个回复用户消息呢,我们做了,但是呢,我们现在只是简单的回复用户消息,只能回复这个文本消息,所以说我们想要啊,将他微信能提供的所有回复消息的方式呢,我们全部都给他写一写。所以我们现在来看一下啊,微信呢,到底有哪些回复用户消息的类型有哪些呢?来,在哪里看?在我们的消息管理这里看,是不是打开消息管理这里有个被动回复用户消息,在这里面呢,我们会发现一共有六种回复用户消息的办法,是不是文本、图片、语音、视频、音乐,或者是图文消息,是不是通常情况下呢,我们借的最多的是图文消息,借的最多的是图文消息啊,那少一点的,简单一点的是不是文本啊,可能像图片、语音、视频、音乐这些东西呢,回复的较少一点,较少一点啊,通常就是一种和六种回复的最多了,所以说呢,我们现在来看一下到底该怎么去写啊,我们会发现呢,首先第一种文本消息是不是写过了,写过了我们看一下图文消息是怎么样的。
01:18
啊,图片消息啊,图片消息来看啊,前面这些呢,我们会发现它是。你看to nameme from your nameme ch time,还有这个message time,它是是不是跟我前面一样的,你看to name from name press time和message time,你对比一下是不是一模一样的,一模一样的无非是这个message type里面的这个test,这里是text,是文本消息,这里是image,代表的是图片消息,是不是,然后呢,再往下走就不一样了,图文啊图文,文本消息呢是。Content的内容是不是,而图片消息呢,是image是不是好,我们发现呢,他们大部分是类似的,只有少部分是不一样的是不是,而且呢,它们最外层的标签呢,都是这个插庙是不是好,再往下走啊,比下线它呢,你看一下,对比一下前面啊,自己看。
02:23
这前面东西是不是一样的,无非是这里变成语音消息的voice,然后后面呢是它特殊的一些标签,是不是好,我们会发现呢,这六种消息呢,其实大部分都类似的,前面呢都是一模一样的,从后从message以后东西呢,就有一些不同的,是不是好,那咱们呢去写一写这块东西,写写它啊,那咱们呢,待会呢可能要去写是不是,那我们如果在这个APH模块写的话呢,又会造成这个ath模块呢,更加复杂一些,那我们呢,就将单独啊将这个回复用户消息的这个格式,因为最终它是不是要进行拼串啊,我呢在这个格式先把它给写好。
03:07
我们呢,专门定一个模块,先把这个格式给它整完啊来我们衔接一个模块。因为呢,它有六种模式是不是,所以说呢,我们专门进行一个tablet叫做模板啊,比如说待会呢,回复消息的模板呢,就在这里面好这个模板呢,它呢,待会呢作为一个函数去暴露啊,作为一个函数的暴露的好处呢,就是啊它可以传参进来。来传一个这样参数。好来,他传一个option是不是这个option是干嘛的呢?来看啊,咱们呢,最终是不是要形成一个这样的结构啊,它这里面是不是要传一些相应的数据出来,那我呢,就通过传这个options,这个options呢,里面就有这个什么from啊,To啊,什么时间啊,什么message type啊,或者是它具体的内容是不是就放在这个options,谁调问我这个模块,谁就把这个东西传给我,传给我之后呢,我在这个模块里面呢,我是不是把最终回复给用户的消息给处理好啊,处理好最终将这个文本是不是返回出去,他们就经过这个模块加工之后呢,是不是就能得到我们这个最终回复给用户消息的那个文本了,就能得到了,所以说咱们定这个模块的作用就是用来。
04:27
加工处理,最终啊,回复用户消息的模板。回复给用户消息的模板,说白了就是最后的那个插没数据,是不是最后的这个插没数据啊,这个模板呢,就是最后的那个插没数据。好,那我们来想一想啊,这里面有大量的相似的结构,我该怎么去处理好?我呢,有一种最最最最笨的方法啊,最最笨的话怎么样呢?来看啊,大家呢,也能想得到我这个option呢,到时候传递进来的时候呢,传一个message type是不是这个message type是不是最终决定着我到时候返回给用户消息到底是什么样的类型啊,它呢有六种类型,是不是什么test啊,什么image,什么video audio audio等等是不是,那么我们的比方说它第一个等于test,那说明我是不是要回复给他一个test文本啊,那么你看我最终呢,在外层定一个re play message初始化等于个空,初始化等于空,一旦回复文本,是不是回复文本消息啊,那么我是不是就是做一个这样的事。
05:41
是不是只不过将这个message呢换成。Options是不是,那咱们自定义的对象呢,我们就采用小图和命法啊,它这里是to,我也是to,我们待会呢,把这个to和from的顺序呢,自己调整好是不是啊,在这里面呢,我就不换了,那这里是不是时间啊,那我也在外面去定义好了,Options点也叫first time啊。
06:08
在外面呢,把这些属性都给我定义好行吗?然后呢,下面呢,是不是还有这个消息种类型啊,你们比如说我就写test,然后呢,在这里面呢,我再写options.content是不是是不是可以这样做,然后还可在else if对不对,它的options time如果等等于。Image,是不是我可以接着再这样?写下去啊,是不是好?当然这样写是没有问题的,只不过呢,只不过什么呢。它有大量的重复性的代码,是不是重复性代码体现在哪呢?来,从这里到这里是不是完完全全一模一样的,一模一样的好,然后这个message have呢,其实也是差不多的,他们呢,其实可以这样改造一下,是不是这里传的是option.message time,比如到这里为止呢,我们会发现前面的东西是不是一模一样的,那我们该怎么做?
07:15
怎么做?提取出去是不是作为初始化的一个值可以吗?来我这里呢,我不这样剪贴了,我把它复制一份啊,不然的话呢,可能不太好去看复制一份,前面这以上东西是不是一个公共的东西啊,好注意我这个斜杠这个东西我全部干掉啊,我这样写前面这一前面这部分是不是都是他们一模一样的东西,所以说我是不是作为一个初始化的值放在这啊,我就不用在下面一步步写了,是不是,那后面它需要什么呢?我在是不是加等于什么,好,再加等于什么。来前面的是不是公共部分去掉,是不是加等于这些啊,然后呢,我们会发现是不是最后这个差表,这个结束标签是不是都得加啊,那我们就统一的放在。
08:07
这是最下面,最下面我给加的有一个这个东东,那我给他一个字符串的,就是个这东东是不是好,加完之后呢,我记得要叫他给是不是看出去啊,最终呢,不是这种模块要使用它只是负责加工处理好,是不是加工处理好,好那下面这些就简单了,这些东西能处理好的话呢,那剩下东西就不难了啊好,那我们剩下的东西就一个个写,把这些重重复的部分是不是全部去掉啊,那我全部去掉,我看一下这个image需要加什么啊,来复制一份。图片消息从是不是从image这个标签开始复制起,复制到这个结束标签之前是不是CTRLC,然后呢,CTRL1。然后呢,记得把这个空格你给手动去掉是不是好在这里是不是要有个message ID啊,那么好,没关系啊,我们在这里呢,待会呢,你要用的时候呢,你把这个什么media啊media ID给我传进来,我用小图的密码啊,你要用的话就把它传进来,是不是你要要就传进来,你不用的话就不用传啊,那接下来在s if啊,其实我可以复制啊,复制一份把它给粘过来,好,接下来呢,它应该下一个是。
09:24
Y是不是好,接着加呗,Wise从这个Y开始加,是不是CTRLC,然后呢。翻过来CTRLV,然后呢,把这个空格呢自己给去掉,然后中间呢,是不是传个这样的值啊,这样的值复制掉是不是好,接下来是不是还有一共有六种,咱们再写三种啊,再往下走,下面是不是视频消息啊,叫做video,把这个video这一块从video开始到这个结束,标签打纸CTRLC,它呢,稍微多一点东西啊,稍微多一点来这里的是VI do是不是。我叫。
10:00
好,这里面的内容呢,稍微多一点,稍微麻烦一点,我们看一下啊,它呢,有把这个空格去掉,有这个什么D,有这个什么title,有这个什么description,是不是好把这些空格记得去掉。哦对,这里要加等于是不是好,咱们差点写写错了啊,要加等于要拼串是不是好,来再往下走,这里面是不是他要他要额外传输三个参数啊,啊没关系嘛,他们要啥我就放啥,到时候我这个调用的时候,是不是他自己这个option自己给我规定好就可以了,到时候有用户自己传就可以了,他懂是不是他说要传传啥我就传啥就是了,DCPTI是不是description好这里呢,我们写好了,还有下面这一个啊来我们复制一份。下面这个什么呢?来看回复音乐小写是不是,诶这个呢,又更加长一点,是不是来到这个music大致啊复制一份。
11:06
来这样呢,我也是a message加等于我这个串是不是CRL,然后呢,我们慢慢的去挪一挪,挪下来啊。好,这样呢,我们按住LT键呢,可以去多选,就不用再一个去整了啊。选中这些所有的空格,全部一次性删掉,它的比较多。好全部删掉是不是,然后删完之后呢,再把格式稍微调一调,稍微调一调,然后呢,接下来呢,我们再去把这个title给补充下来,复制前面一份啊。好,Time呢,是我的music是不是?好,接下来再来,这是description,我大家可以复制一下,好,那再往下走是music URL是不是,这是我那个音乐的连接地址,URL下面的是我高清HQ是不是高清的意思啊,高清的一个高质量的一个,呃,音乐地址。
12:14
那我就也写个Hq吧,然后那M大写啊高兴的一个music URL下面的是媒体ID,那我呢,把它给复制一份啊,这个其实这里面的字段呢,都比较好理解,就是这个媒体ID可能你们还不太清楚啊,你看比方说这里是不是有个title啊,Title意味着是不是我这个视频的。标题是不是,然后这个是不是有视频的描述啊,那这个媒体ID是什么呢。他呢,是我们到后面要去做的一个事啊,叫做上传素材。我们呢,要去上传素材,说白了就是将本地的一个比方说一个视频文件上传到我的微信服务器中,当我上传到微信服务器中之后啊,他就会返回一个对应的这个素材的v didd给我,那我拿到这个v didd呢,才能正式的是不是回复给用户啊,啊,我们有这个视频文件没用的,你发布到用户那里,你想要发送给用户那里呢,你首先得上传素材,得到媒体ID,再加这个媒体ID是不是通过这种方式发送,发送给用户啊,那才会有这个你想要看到的视频文件啊,所有的媒体ID都是这样的,你需要先上传素材才能拿到,那如果不是媒体ID,像这些开头啊,就是你自己写的标题,自己写的描述,自己的那个音乐地址的连接是不是,然后呢,高清的连接,然后这个ID呢,你还是要传,要求你传的东西呢,你必须要传才行啊,就是这个ID。
13:53
好,除了这样这一个呢,最后一个呢就最麻烦了啊,最后一个呢是什么呢。最后一个是图文消息,叫做news,这个东西最麻烦了啊,我们来看一下它是怎么一回事。
14:09
我要找通过消息呢,它非常长,来我从这里开始啊,这复制的就千万不要漏复制了啊,复制完之后呢,会发现它特别特别长啊来。看他用了哪些东西,它的结构呢比较多啊。好,其实呢,这里是不是有个item啊,这两个item呢,其实是一模一样的,大家可以看一下。来先看一下这个item,这两个item是不是一模一样的结构说明呢?大家想啊,我们图文消息大家也看过,是不是一个长长的列表啊,完了,除了第一个最大以外,其他几个是不是小小一点的,他们是不是可能有多条啊,这也是意味着你这里放几个item的话呢,对应的这边呢,就会显示几条,所以说呢,它有这个。
15:10
这里就这数量是不是不固定啊,就看用户到时候传多少条,我是不是显示多少条所对应的,我到时候要怎么处理呢。我肯定不能写两条,我先写一条,那怎么办呢?是不是要根据用户的传入的数据,我做一些特殊的处理啊,怎么处理呢?是不是要想办法去编历才行啊,你看它它呢,最终呢,我规定啊,它传过来数据呢,待会有个东西是个数组,数组里面是不是一条条对象,每一个对象呢,就代表着我要回复给用户的一条图文消息,是不是还有多少个,是不是代表我回复多少条啊,那么我是不是只要遍利这个数组,我就可以知道我要设置多少个item了,我就知道了啊,所以说我们通过设计这个数据,从来来去把这一块给做好一些,做一些啊好,那这里面呢,我们来看一下有哪些需要改的。
16:11
啊,要改的地方呢,它呢这里拼创呢还比较麻烦啊,它呢不能一次性拼好,因为中间这个结构是不是可能有多条啊,所以呢,我们要去这样去拼啊,把这些结构呢全部给它拆下来。全部拆上来,一共有三拆了三块结构,是不是三块结构中间这块结构是不是要遍历啊,好,来一步步写呗,好第一个来看啊,这里是不是说article count啊,这什么意思呢?这个数看代表数量的意思,这个数量呢,就是说明我下面这个item,它到底有多少个,是不是好在这里呢,我们不写死来。我们待会是这样的啊,待会呢,它呢会传一个options给我,Options里面呢有个content,一个这样的一个属性啊,这属性呢,我就决定着它属性是一个数组,你要返回多少个item,多少条同步消息,你就往这个数组里面塞多少个对象给我就可以了,我待会就这样规定,所以说呢,最终是不是会返回一个这样数字给我啊,那我想要知道里面有多少条信息的话呢。
17:23
我是不是可以取的我数字的。长度就行了,是不是我数组的长度有多少个,是不是对应的我这条消息就有多少条啊好,我就通过数组的长度来去确定,好在接下来这里是要便历了,遍利的话呢,那我把这些格式稍微调好一点啊,便利的话呢,我就对应到我这个。嗯,来看一下怎么编列啊,那我这里面的option content它是个数组,是不是数组呢?就会有一个方法叫做for each方法,FOR1方法呢,里面就item是不是好item呢?我这个里面就是item,就是里面其中每一个对象是不是,那我就要这个message呢,继续加,等于我下面这个串是不是下面这个串啊把这个格式呢,稍微调一下,然后这个串呢,首先我把这些空格先把它去掉再说啊。
18:16
在空格呢,你要是保留的话呢,待会回复就会报错。哎,他最近不让我。啊,上手。删掉它啊,删掉它之后呢,我们来看这里是不是title啊,那我去前面复制一份啊,Title这里是不是那也复制一份。这里呢是ul,我改一下啊,P下面的是不是U啊,改一下ul好,这里面不是options啊是。是item遍历出来的每一个item是不是,所以说你要改成item才行啊,到这呢,是不是拼切成了所有的这个item的,那你最后呢,千万不要忘记啊,咱们这个article标签呢,它有结束标签,是不是你最后一步呢,还得把这个结束标签给我。
19:13
拼起来才行,不然的话呢,也会报错了,是不是也会出现问题啊,可能最后呢,这个东西你不要忘了,所以说呢,咱们这个news词呢,它一共拼串呢,就分为三部分,是不是第一部分是首部,第二部分呢,我要遍定这个item,第三部分呢,将这个结束标签是拼起来啊,拼起来才行,然后最后呢,大家不要把这个放到这里面去了啊,这个呢是所有。所有这些类型是不是最后都要拼起来的,都得拼起来的,所以说一定要放在最后啊,最后呢,返回出来的就是我们最终回复给。用户的数据是不是。好,到这呢,我们就算是写完成了一部分了,我们呢,终于把这个文件是不是定义好了,定义好了,好这样呢,只是完成了我们的一步啊,我们停一下。
我来说两句