第三方应用接入微信平台的研究分享(二)
更新时间:2013年1月6日15:39:11 作者:
微信平台开通后,受到了广泛欢迎。很多第三方应用都想尝试一下。下面我给大家介绍一下我的整个研究情况。我希望我们能一起学习。有兴趣的朋友可以多了解一下。
微信平台自开通以来就非常受欢迎,很多第三方应用都想尝试。毕竟利用微信建立的关系链来拓展自己的应用是好的,而且可以节省大量的社交费用。最近,我一直在做实习生。我也在研究这个东西,但是发现网上相关的资料还是蛮少的。我在这里把我的整个研究情况给出出来,希望大家能够共同学习。
第三方应用接入微信平台(一)
2、第三方应用与微信通讯时序图
2.接收微信的请求信息
前四步与之前的“1.发送消息至微信”相同,无需重复。它们在这里只是为了
流程完整性。我们注册后,应用图标就会出现在微信聊天列表中。单击加号进行添加。
添加完成后,聊天时点击应用图标会回调第三方应用,如上时序图所示。这里还有一件事,
当我们向微信发送消息时的媒体类型为type,即时,好友为
当你收到消息时点击消息,会出现类似的回调过程。需要修改的是,此时调用时输入
为了。而不是为了。
当我们在方法中收到它时。
消息类型,如果您想将响应发送回微信,可以使用以下代码片段来实现
可以发现响应消息对象和请求是一样的。看看下面的渲染图。
这是聊天窗口,假设您已单击加号将应用程序添加到下面的列表中
此时如果点击第三方应用,就会回调我们设置的接口。
这个接口是自定义的。您可以自定义收到微信请求后的响应接口。
说了半天,我还是没有提到前面提到的方法或者方法的由来。
也就是说,如果我们要在向微信发送请求后处理反馈或者响应微信的请求
应该做什么,我们需要以下3个步骤:
一个。你可以在你的包名对应的目录下新建一个目录,并在该目录下添加一个新目录。
,继承自(当然这个路径是自定义的,由你决定)
并向文件添加属性并将其设置为 true,例如:
复制代码代码如下:
:名称=“..”
:=“真”
:=“@/”
:=“”>
b.实现接口,微信发送的请求会回调到该方法并发送
微信请求的响应结果会回调到该方法
终于,这两个神奇的方法出现了。你可以看一下它们的一般用法。
复制代码代码如下:
@
无效(要求){
(要求。()){
案件 。:
();
;
案件 。:
((.Req) 请求);
;
:
;
复制代码代码如下:
@
无效(分别){
整数=0;
(分别){
案件 ..:
= R..;
;
案件 ..:
= R..;
;
案件 ..:
= R..;
;
:
= R..;
;
.(这个, , .).show();
c.将接收到并实现的接口放入
就像传递给接口的方法一样:
复制代码代码如下:
api.(, 这个);
OK,这三个步骤结合时序图就可以理解了,而且都可以一一对应。
最后给出一些注意点,也是很容易混淆的。我写了一个demo并验证了。如果您认为有什么不对的地方,欢迎指出,欢迎讨论。
1、注册为本地注册,只需注册一次。但微信服务器在发送时会检查第三方应用的合法性。
2、说白了,本地第三方应用会先将要发送的内容发送给微信进程,然后微信进程收到消息后,再将消息发送给自己的微信好友。
3、卸载或注销后,第三方应用将不会出现在微信可添加的应用列表中。
4、使用微信开放平台发送的媒体对象中,网页、音频、视频只能是网络URL,图片可以使用本地路径发送,本地字节数据、网络URL、文件可以使用本地字节数据发送,本地路径。对于媒体对象中的字节数组,微信点击时默认是一个下载界面。下载后的存储路径在 ////本地微信账号(一般是字母和数字的组合)/文件夹下。您不需要自己记录该路径。微信会将其记录在媒体对象的字段中。这个时候一定要注意,当你响应微信的show请求时,媒体对象中的字段都是空的,即使你发送的时候带有这个字段,前面也说过,只能使用这个字段。
如果你想自己处理的话,只能使用类型数据。原因如下:
该类型对象唯一的特殊点是,它告诉微信这条消息点击时需要调用第三方应用。点击其他类型的媒体对象时,会显示微信的默认页面。
5、微信根据字段判断聊天框消息的表现以及点击后的响应。只有点击后才能调用第三方应用的进程。触发的方法是实现接口的类的方法,类型是。而微信中与好友聊天时点击第三方应用图标触发的方法就是实现该接口的类的方法,类型为。
6、微信会根据第三方应用是否注册给出应用安装信息。例如,向微信好友发送音频消息时,当好友点击消息时,微信会加载音频消息中的URL,但之前不会使用。 URL后面附加一些微信定义的信息,微信打包后会包含一个关于URL具体格式的字段。我们可以断开网络,然后再次点击。那么经典的界面自然就会出现。您还可以看到该 URL 的真面目。因为实习结束后我写的demo全部丢失了,所以就下载一个官方的demo。如果有什么不清楚的,可以留言分享。
感谢您的配合,希望共同学习。