快捷搜索: 微信协议

微信开发sdk-产品二次开发引导手册

微信开发sdk-产品二次开发引导手册

一、看懂手机端SDK与服务端通信协议

 data lengthprotobuf data bytes

如上图,采用 datalength+databytes 的自定义长度的协议,其中:
datalength:紧跟其后的databytes的数据长度(不包含自身长度),占4字节
databytes:protobuf 3.0协议数据序列化后的数据内容,长度不限
贴段代码做参考:(具体可参考java服务端demo源码)
解码
微信开发sdk-产品二次开发引导手册
编码
微信开发sdk-产品二次开发引导手册
基于标准socket长连接+protobuf通信,C、C++、java、C#、go、php等支持标准socket的强语言都可以重写服务端。
温馨提示:重写服务端须熟悉网络编程和protobuf序列化,网络编程及protobuf问题请咨询百度。

二、读懂软件结构
微信开发sdk-产品二次开发引导手册
温馨提示:服务端和PC端第三方完全可以重构的,也可以集成到任何业务系统,但要注意服务端与手机端SDK的通信要完全遵守协议标准。

三、开发引导入门
服务端与手机sdk端通信二次开发

1、服务端实现掉与手机sdk端第一次授权交互
手机sdk客户端在与服务器建立连接后,需要先发送DeviceAuthReq请求获取accesstoken后才能正常进行后续通信,建立连接时的通信时序图如下:
微信开发sdk-产品二次开发引导手册
温馨提示:服务端与手机sdk端走的是socket+protobuf,服务端收到DeviceAuthReq请求后,要么按要求返回DeviceAuthRsp,要么返回错误信息。数据格式请参考接口文档

2、服务端实现掉与手机sdk端心跳机制
与服务器建立连接的手机sdk客户端需要每隔1分钟发送一个心跳包,时序图如下:
微信开发sdk-产品二次开发引导手册
温馨提示:服务端在接受到手机sdk客户端心跳请求时,必须返回MsgRecivedAck或者错误信息,否则手机sdk客户端会认为连接服务端异常,会断开链接重连。
3、其他服务端接口请照葫芦画瓢实现即可,这里就不再啰嗦
4、服务端与手机sdk端其他接口疏导

写在前面:再次提醒,服务端与手机sdk端采用socket+protobuf
第一步:搭建socket+protobuf编解码的服务端
第二步:实现手机sdk端与服务端的心跳HeartBeatReq接口
第三步:实现手机sdk端登陆授权DeviceAuthReq接口
第四步:实现手机sdk端与服务端的消息确认MsgReceivedAck接口
第五步:陆续实现各个手机sdk端消息推送及任务结果通知接口接口即可
写在后面:服务端开发过程中,请结合自身业务,不能完全拘泥于我们提供的demo,有些任务接口(如群里开发接口中)在触发后会收到手机sdk端一个以上的结果数据通知,请注意结合手机端调试日志分析。

服务端与pc客户端通信二次开发
1、服务端实现掉与PC客户端第一次授权交互

原理与手机sdk端一样
温馨提示:注意pc客户端与服务端走的是websocket+json格式,这个很简单,不再多说

2、服务端与PC客户端其他交互接口疏导
写在前面:通信采用websocket+json,不多废话
第一步:登陆授权,调用DeviceAuthReq
第二步:拉去可用微信列表,调用GetWeChatsReq,然后选择微信登陆调用WeChatLoginNotice,展示微信列表
第三步:拉去通讯录好友列表,调用TriggerFriendPushTask
,手机sdk经过服务端异步推送FriendPushNotice,本地做好存储及列表展示
第四步:发消息调用TalkToFriendTask ,若好友发来消息,则会推送FriendTalkNotice,其他接口类似,不多废话
第五步:视频、图片需要获取详情,需请求RequestTalkDetailTask
第六步:小程序、名片只能转发不能自己造数据,只能转发,可请求 RequestTalkContentTask获取原始内容
第七步:各类任务性操作,请按文档接口调用,都会异步返回执行结果的

群聊开发请多分析接口,特别是群聊列表,群聊详情,群成员信息等等,这个比较复杂很多开发者会犯糊涂,一定要多看接口!!!(登录的时候先获取一下所有群聊TriggerChatroomPush,返回全量的ChatroomPushNotice和ChatroomMemberNotice,以后推送的都是增量的,有变化的)
写在后面:
有些接口没办法一次性获取数据,只能分步骤进行,这与sdk基于手机端开发有关,不一定是设计缺陷;
有些接口调用一次手机端会异步推送多个类型接口返回,这是有原因的,需要在开发过程中多调试,如果有疑问请及时联系我们。
咨询或建议请加微信tangjinjinwx

微信开发sdk-产品二次开发引导手册

项目永久地址:https://www.wuliaokankan.cn/url301/138.html