微信开放平台-以你之名贯我之心

      最近Boss说来搞一搞微信的开放平台,在兼顾内网的同时,虽然文档管理系统即将上线,但是order is order,所以百忙之中忙中抽闲,说搞就搞,我要做自己的leader!废话少说,直接上图,希望让自己学的更加深刻。

一、申请自己的AppID

      

 

 

二、填写应用名称,写上自己的包名以及应用描述

        

 

 

三、获取程序签名的md5值,此前要先将你的应用程序进行签名操作之后再安装到你的手机上(htc与huawei亲测,无障碍)

         

 

 

四、以下是效果展示:(希望兄弟伙伴们能相互交流学习)

               

                                                          以上是安装过程

                                                          

 

  
                                                          进入界面,先将app注册到微信,然后在微信里面添加你的app应用
                                                           
                                                          在这里点击附加到微信

                                                          

                                                          此时已经附加到微信,此刻点击app应用即可进行操作:

 

                                                          发送文本:支持长文本与短文本

                                                          

                                                          发送图片:支持二进制数据、本地路径与图片的URL,这里展示图片的二进制数据

                                                          

                                                          发送音乐:支持音乐URL与低宽带音乐URL

                                                         

                                                          发送视频:支持视频URL与低宽带视频URL

                                                          

                                                          发送网页:借用一句话,只要给我一个URL,我便能玩转整个web世界

                                                         

                                                          效果截图:

                  

                                                                                             朋友圈分享

                   

                                                                                              好友分享

            

 

 
 

五、一点点小贴士:

  1、注册是本地注册,且只需要注册一次,但是在发送的时候微信服务器会检测第三方应用的合法性

  2、说白了就是在本地第三方应用将要发送的内容先发给微信进程,微信进程收到后再将消息发给自己的微信好友

  3、卸载或者反注册后,第三方应用将不会出现在本机微信的可添加应用列表中

  4、使用微信开放平台发送的媒体对象中,网页,音频和视频只能是网络URL,图片可发送本地路径,本地字节数据,网络URL,文件可以发送本地字节数据和本地路径,附带在媒体对象中的字节数组,微信默认会是点击则给出下载界面,下载后存储的路径是在/sdcard/Tecent/MicroMsg/本机微信帐号(一般是一串字母数字的组合体)/attachment文件夹下,这个路径不需要自己去记录,微信会在媒体对象的filepath字段中记录,此时一定注意的是当你响应微信的show请求时,媒体对象中的filedata字段是为空的,即使你在发送的时候附带在了这个字段中,如前面所说,只能用filepath这个字段。

如果要自行处理只能是appdata类型数据,理由下面给出

appdata类型的对象唯一特殊点就只是告诉微信这个消息点击时需要调用第三方应用,而其他类型的媒体对象被点击时所显示的是微信的默认页面

  5、微信根据transaction字段决定消息在聊天框中的表现以及点击后的响应,只有appdata被点击时可以调用第三方应用的进程,所触发的方法是实现了IWXAPIEventHandler接口的类的onReq方法,类型是ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX而在微信中和好友聊天时点击第三方应用图标所所触发的方法是实现了IWXAPIEventHandler接口的类的onReq方法,类型是ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX

  6、微信会根据第三方应用是否注册来给出应用安装的信息,比如传给微信好友一个音频消息时,当好友点击那个消息,微信会以一个WebView来load音频消息中的URL,不过在此前会在URL后面附加一些微信定义的信息,其中就会包括一个字段是isInstalled有关微信包装后的URL的具体格式,我们可以将网络断开,然后再去点击,这时自然就出现了那个经典界面,你也就可以看到URL的真面目了因为我自己写的demo都在实习结束后丢失了,所以给一个官方的demo下载,如果有不清楚的可以交流

谢谢合作,希望共同学习。大笑

六、工具附件

微信获取程序签名工具下载地址:http://xiazai.jb51.net/201211/tools/gen_signature_jb51.rar

七、微信SDK中会用到主要类的类图

 

 

       上面这张类图中显示的是与微信通信过程中的请求类和响应类,第三方应用通过他们附带的message字段来携带消息传输给微信进程。其中BaseResp有个内部类ErrCode,它里面定义了几个常量字段,当我们向微信发送请求后它会作为返回字段,返回到我们的应用中来,我们可以根据这个做相应的处理,在后面的时序图中将会提到。接下来就是SDK中的message对象了。

 

 

 

       上面这个类图主要是消息对象,里面有一个字段来引用媒体对象,这些媒体对象就是我们所能传给微信的对象。有了消息对象和媒体对象,接下来要给出的就是将消息对象送出去的通信类了。

 

 

 

       上面的IWXAPI就是所说的通信类,所有与微信进行通信的工作都是它在做,而它的生成是由下面的工厂类来完成。旁边的IWXAPIEventHandler接口是需要第三方应用来实现的,如果我们想处理微信的请求信息或是我们向它发请求后它返回的标识字段。

八、第三方应用与微信通信的时序图

 

 

       应用只需要进行一次注册就行了,然后在以后的使用中只需要封装消息,让通信类发送即可。从前面的类图中可以看到,封装消息的顺序是首先生成需要发送的媒体对象,然后将媒体对象附加到消息对象中,接着建立请求对象,最后使用通信类发送即可。

 


 

 

 


 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章