在之前的博客中,讲到了服务器配置一项。服务器配置好后,就可以进行消息的自动回复了。
本文记述主线
·消息接受和发送简单介绍
·xml格式解析
·其他代码简介
PS:以上仅为本人学习流程,延伸阅读请参考官方文档或其他大牛作品(其实本人也是摸着石头过河的-.-)。当然,有疑问或不当的地方,欢迎大家留言讨论。
我们需要考虑的过程是,个人服务器和微信服务器的交互过程。
官网介绍如下,感觉比较易于理解:
当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐)。严格来说,发送被动响应消息其实并不是一种接口,而是对微信服务器发过来消息的一次回复。
MsgType包括文本、图片、语音、视频、小视频、地理位置、连接等消息,和关注/取消关注、扫描二维码、自定义菜单等时间推送,详细可关注官网,本博客仅以文本作为例子;
MsgType是消息的时候,有MsgId,是事件推送的时候,没有MsgId;
如果想避免重复,存在MsgId的时候,使用MsgId作为判断,不存在MsgId的话,可以使用 FromUserName+CreateTime作为判断;
<![CDATA ]>符号的含义是,在xml解析的时候,在这个符号内的所有字符均解析为字符串,尤其是一些特殊符号(</>d等),一些数值类型的一般不加这个符号。
发送给微信服务器的消息例子(文本消息):
本文记述主线
·消息接受和发送简单介绍
·xml格式解析
·其他代码简介
PS:以上仅为本人学习流程,延伸阅读请参考官方文档或其他大牛作品(其实本人也是摸着石头过河的-.-)。当然,有疑问或不当的地方,欢迎大家留言讨论。
· 消息接受和发送简单介绍
我们需要考虑的过程是,个人服务器和微信服务器的交互过程。
官网介绍如下,感觉比较易于理解:
当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐)。严格来说,发送被动响应消息其实并不是一种接口,而是对微信服务器发过来消息的一次回复。
从微信服务器接收到的消息例子(文本消息):
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>
MsgType包括文本、图片、语音、视频、小视频、地理位置、连接等消息,和关注/取消关注、扫描二维码、自定义菜单等时间推送,详细可关注官网,本博客仅以文本作为例子;
MsgType是消息的时候,有MsgId,是事件推送的时候,没有MsgId;
如果想避免重复,存在MsgId的时候,使用MsgId作为判断,不存在MsgId的话,可以使用 FromUserName+CreateTime作为判断;
<![CDATA ]>符号的含义是,在xml解析的时候,在这个符号内的所有字符均解析为字符串,尤其是一些特殊符号(</>d等),一些数值类型的一般不加这个符号。
发送给微信服务器的消息例子(文本消息):
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[你好]]></Content>
&l