+发表新主题
查看: 1510|回复: 0

[开发入门] 微信开发入门系列教程(二)-- 收发消息

[复制链接]

[开发入门] 微信开发入门系列教程(二)-- 收发消息

[复制链接]
风的传说自由 发表于 2015-7-6 16:21:39 浏览:  1510 回复:  0 [显示全部楼层] |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
152029s1nn0zznnc7e5jnu.png


微信最基本的功能就是消息的收发,所有的功能也都可以理解为消息收发,在正式进行开发之前,必须先深入了解微信公众平台的消息机制。

152029s1nn0zznnc7e5jnu.png


消息类型
消息分为普通消息和事件推送普通消息包括文本消息、图片消息、语音消息、视频消息、地理位置消息以及链接消息;事件推送,即在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息。事件推动包括关注/取消关注事件、扫描带参数二维码事件、上报地理位置事件、自定义菜单事件、点击菜单拉取消息时的事件推送、点击菜单跳转链接时的事件推送。以上的普通消息和事件推送,后面会一一做详细用法解释。

普通消息
消息机制由接收和发送双方组成,关于接收消息,开发者文档里是这样描述的“当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上”,用户能向公众号发送的消息类型包括:文本、图片、语音、视频、小视频、地理位置和链接消息;而回复消息时,“开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐消息)”。

这里提到了两点,一、微信服务器返回消息的方式为POST,而我们回复微信服务器的方式为GET,二、消息的格式是XML

不同消息的XML数据包参数是有所不同的,接下来会为大家一一讲解。

一、接收消息
文本消息

  1. <xml>

  2. <ToUserName><![CDATA[toUser]]></ToUserName>

  3. <FromUserName><![CDATA[fromUser]]></FromUserName>

  4. <CreateTime>1348831860</CreateTime>

  5. <MsgType><![CDATA[text]]></MsgType>

  6. <Content><![CDATA[this is a test]]></Content>

  7. <MsgId>1234567890123456</MsgId>

  8. </xml>

复制代码
图片消息

  1. <xml>

  2. <ToUserName><![CDATA[toUser]]></ToUserName>

  3. <FromUserName><![CDATA[fromUser]]></FromUserName>

  4. <CreateTime>1348831860</CreateTime>

  5. <MsgType><![CDATA[image]]></MsgType>

  6. <PicUrl><![CDATA[this is a url]]></PicUrl>

  7. <MediaId><![CDATA[media_id]]></MediaId>

  8. <MsgId>1234567890123456</MsgId>

  9. </xml>
复制代码
语音消息

  1. <xml>

  2. <ToUserName><![CDATA[toUser]]></ToUserName>

  3. <FromUserName><![CDATA[fromUser]]></FromUserName>

  4. <CreateTime>1357290913</CreateTime>

  5. <MsgType><![CDATA[voice]]></MsgType>

  6. <MediaId><![CDATA[media_id]]></MediaId>

  7. <Format><![CDATA[Format]]></Format>

  8. <MsgId>1234567890123456</MsgId>

  9. </xml>
复制代码
请注意,开通语音识别后,用户每次发送语音给公众号时,微信会在推送的语音消息XML数据包中,增加一个Recongnition字段(
注:由于客户端缓存,开发者开启或者关闭语音识别功能,对新关注者立刻生效,对已关注用户需要24小时生效。开发者可以重新关注此帐号进行测试)。开启语音识别后的语音XML数据包如下:

  1. <xml>

  2. <ToUserName><![CDATA[toUser]]></ToUserName>

  3. <FromUserName><![CDATA[fromUser]]></FromUserName>

  4. <CreateTime>1357290913</CreateTime>

  5. <MsgType><![CDATA[voice]]></MsgType>

  6. <MediaId><![CDATA[media_id]]></MediaId>

  7. <Format><![CDATA[Format]]></Format>

  8. <Recognition><![CDATA[腾讯微信团队]]></Recognition>

  9. <MsgId>1234567890123456</MsgId>

  10. </xml>
复制代码
多出的字段中,Format为语音格式,一般为amr,Recognition为语音识别结果,使用UTF8编码。

视频消息

  1. <xml>

  2. <ToUserName><![CDATA[toUser]]></ToUserName>

  3. <FromUserName><![CDATA[fromUser]]></FromUserName>

  4. <CreateTime>1357290913</CreateTime>

  5. <MsgType><![CDATA[video]]></MsgType>

  6. <MediaId><![CDATA[media_id]]></MediaId>

  7. <ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>

  8. <MsgId>1234567890123456</MsgId>

  9. </xml>
复制代码
小视频消息

  1. <xml>

  2. <ToUserName><![CDATA[toUser]]></ToUserName>

  3. <FromUserName><![CDATA[fromUser]]></FromUserName>

  4. <CreateTime>1357290913</CreateTime>

  5. <MsgType><![CDATA[shortvideo]]></MsgType>

  6. <MediaId><![CDATA[media_id]]></MediaId>

  7. <ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>

  8. <MsgId>1234567890123456</MsgId>

  9. </xml>
复制代码
地理位置消息

  1. <xml>

  2. <ToUserName><![CDATA[toUser]]></ToUserName>

  3. <FromUserName><![CDATA[fromUser]]></FromUserName>

  4. <CreateTime>1351776360</CreateTime>

  5. <MsgType><![CDATA[location]]></MsgType>

  6. <Location_X>23.134521</Location_X>

  7. <Location_Y>113.358803</Location_Y>

  8. <Scale>20</Scale>

  9. <Label><![CDATA[位置信息]]></Label>

  10. <MsgId>1234567890123456</MsgId>

  11. </xml>
复制代码
链接消息

  1. <xml>

  2. <ToUserName><![CDATA[toUser]]></ToUserName>

  3. <FromUserName><![CDATA[fromUser]]></FromUserName>

  4. <CreateTime>1351776360</CreateTime>

  5. <MsgType><![CDATA[link]]></MsgType>

  6. <Title><![CDATA[公众平台官网链接]]></Title>

  7. <Description><![CDATA[公众平台官网链接]]></Description>

  8. <Url><![CDATA[url]]></Url>

  9. <MsgId>1234567890123456</MsgId>

  10. </xml>
复制代码
回复音乐消息

  1. <xml>

  2. <ToUserName><![CDATA[toUser]]></ToUserName>

  3. <FromUserName><![CDATA[fromUser]]></FromUserName>

  4. <CreateTime>12345678</CreateTime>

  5. <MsgType><![CDATA[music]]></MsgType>

  6. <Music>

  7. <Title><![CDATA[TITLE]]></Title>

  8. <Description><![CDATA[DESCRIPTION]]></Description>

  9. <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl>

  10. <HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl>

  11. <ThumbMediaId><![CDATA[media_id]]></ThumbMediaId>

  12. </Music>

  13. </xml>
复制代码
回复图文消息

  1. <xml>

  2. <ToUserName><![CDATA[toUser]]></ToUserName>

  3. <FromUserName><![CDATA[fromUser]]></FromUserName>

  4. <CreateTime>12345678</CreateTime>

  5. <MsgType><![CDATA[news]]></MsgType>

  6. <ArticleCount>2</ArticleCount>

  7. <Articles>

  8. <item>

  9. <Title><![CDATA[title1]]></Title>

  10. <Description><![CDATA[description1]]></Description>

  11. <PicUrl><![CDATA[picurl]]></PicUrl>

  12. <Url><![CDATA[url]]></Url>

  13. </item>

  14. <item>

  15. <Title><![CDATA[title]]></Title>

  16. <Description><![CDATA[description]]></Description>

  17. <PicUrl><![CDATA[picurl]]></PicUrl>

  18. <Url><![CDATA[url]]></Url>

  19. </item>

  20. </Articles>

  21. </xml>
复制代码
不同的消息,参数有一定差异,可以对照下表进行查阅,之后会给大家详细讲解每种消息的用法示例。开发者文档中的接口调试工具可以对每种接口进行在线测试,只需要填写对应的参数即可。

参数汇总
参数描述
ToUserName 开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgType消息类型,包含text、image、voice、video、shortvideo、location、link
Content 文本消息的内容
PicUrl图片链接
MediaId图片、语音、视频消息媒体id,可以调用多媒体文件下载接口拉取数据。
Format语音格式,如amr,speex等
ThumbMediaId视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
Location_X图片链接
Location_Y地理位置经度
Scale地图缩放大小
Label地理位置信息
Title消息标题
Description消息描述
Url消息链接
MsgId消息id,64位整型

回复

使用道具 举报


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版| 赣南网

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4

用微信扫一扫

赣南网