从今天开始教程进入高级阶段,请你们认真、专心,还有执着,我会很耐心的在后台回复每一个人的提问,可是若是真以为学不下去的能够考虑用一些现成的第三方平台,可是确定不如本身开发来的个性化。html
点击公众平台后台导航的“高级功能”就能够进入,该页面有两个模式选择,分别为“编辑模式”和“开发模式”,以下图:
web
默认两个模式都是关闭状态,两种模式不能同时开启,点击开发模式区域进入开发模式设置页面,以下图:
数据库
模式总开关。只有“成为开发者”后才能够开启,这里要注意的是因为编辑模式和开发模式不能同时开启,使用开发模式前应先关闭编辑模式。segmentfault
api接口文档。点击后能够查看目前全部开放的接口使用详细说明,包括开发用的SDK包。(SDK,Software Development Kit 的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。)api
成为开发者。点击后会出现接口配置页面,用来绑定本身服务器上的程序接口与微信接口通信,具体的操做将在第九章介绍。服务器
首先来了解下微信开发模式有那些接口,清楚微信接口能作什么不能作什么有利于本身的产品设计,能够考虑本身的产品如何结合如何规划。微信
因为微信自己是一个通信工具,它全部的api接口都是基于一问一答的通信机制,所以它的接口文档分为消息推送(用户在公众平台上行发送 的消息)和消息回复(响应用户上行消息反馈下发回复的消息),本教程除了目前已经公布的接口外,还将剧透一部分将要开放的接口,比较特殊的消息下发接口属于最高级别接口,大部分开发者是拿不到的,因此不介绍了。微信开发
一、文本消息ide
此类消息即用户向公众帐号输入文本发送消息,是公众平台接收到最多的消息,也是最重要的搜索、互动请求,由于语音识别还不成熟,图片没法识别,地理位置用的场景也很少。工具
接口获取到的消息格式:
这里先说下XML数据格式,它不只是一种很是适合web传输的格式,还具备强大的数据索引、排序、查找、相关一致性等特色,有些网站甚至拿XML来作数据库,好比射手网,它结构很是简单,看起来有点像html,可读性比较强,微信开发接口的消息传递主要在用这个。
有些人会以为很头大,其实不理解也不要紧,只要搞清楚它每次传输给你的有那些数据,你怎么获取这些数据就能够了。
文本消息的数据字段:
ToUserName:开发者微信号(公众帐号ID)
FromUserName:发送方账号(微信用户的OPENID,每一个微信用户与每一个公众帐号是惟一的,不一样公众帐号同个用户OPENID是不一样的)
CreateTime:消息建立时间
MsgType:消息类型(文本消息为text)
Content:消息内容
MsgId:消息的ID号
二、图片消息
用户使用图片上传发送消息,应用场景:帐号注册、随手拍活动征集、现场微信照片墙。
接口获取到的消息格式:
图片消息与文本消息数据不一样:
MsgType:消息类型为image
PicUrl:图片连接,该图片保存在微信的服务器上,能够经过远程抓取图片程序保存到本地。
三、地理位置消息
微信将LBS看成一个交互信息进行传递,比较常见的微信用户之间发送地理位置告知目的地所在,公众号里发送地理位置搜索周边人、商家、信息等。
接口获取到的消息格式:
地理位置消息与文本消息数据不一样:
MsgType:消息类型为location
Location_X、Location_Y、Scale:地理位置的经纬度和地图缩放比例,用于第三方地图接口的应用,搜索周边须要用到
Label:地理位置文字信息,如某某城市某某路某某号,若是以城市为单位查询直接拿这个就能够。
四、连接消息
微收藏、印象笔记等用来保存微信里图文消息的应用就是使用的这个接口,用户将连接发送到该公众帐号,公众帐号经过连接抓取网页内容而后收藏保存。
接口获取到的消息格式:
连接消息与文本消息数据不一样:
MsgType:消息类型为link
Title:消息标题
Description:消息描述
Url:连接地址
五、语音消息(未开放)
这个消息接口并不在公开文档上,但事实上有很多微信应用已经在使用,好比路况电台,不全面开放的缘由我我的猜想是由于微信本身的语音识别还不理想,将来确定会开放,想象一下对公众帐号说句话后台就能给反馈信息多方便的功能。
接口获取到的消息格式:
语音消息与文本消息数据不一样:
MsgType:消息类型为voice
MediaId:语音消息媒体id,能够调用相应接口获取内容
Format:语音类型,如amr,speex,wav等,目前是使用的speex。
六、视频消息(未开放)
这个消息接口也不在公开文档上,结构跟语音消息差很少。
接口获取到的消息格式:
视频消息与文本消息数据不一样:
MsgType:消息类型为video
MediaId:视频消息媒体id,能够调用相应接口获取内容
ThumbMediaId:视频消息缩略图id,能够调用相应接口获取内容
七、事件推送
这个接口很重要,目前只开放了用户关注、用户退订,还有自定义菜单按钮相应的功能,部分测试的有用户打开公众号提醒和自动发送地理位置。也就是用户不发送任何内容也能够捕捉用户行为作出回复。
接口获取到的消息格式:
事件推送与文本消息数据不一样:
MsgType:消息类型为event
Event:事件内容,subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单点击事件)
EventKey:当用户事件为点击自定义菜单时,返回事件KEY值,与自定义菜单接口中KEY值对应。
不少人在问如何知道用户退订的,其实就是这个消息接口,另外3月26往后将用户关注消息也从文本消息改成了事件推送。
消息回复须要注意的一点是从接收用户发送的消息,到服务器响应返回消息,有效时间只有5秒钟,超时的话用户是没法接收到回复消息的。
一、回复文本消息
文字阅读要比其余方式的阅读成本低,因此能用文本的地方我们就尽可能用文本。
接口下发的消息格式:
回复文本消息的数据字段:
ToUserName:发送方账号(微信用户的OPENID,每一个微信用户与每一个公众帐号是惟一的,不一样公众帐号同个用户OPENID是不一样的)
FromUserName:开发者微信号(公众帐号ID)
CreateTime:回复消息建立时间
MsgType:回复消息类型(文本消息为text)
Content:回复消息内容(长度不超过2048字节)
FuncFlag:设置为1的时候,自动星标刚才接收到的消息,适合活动统计使用
二、回复图片消息(未开放)
这是个未公开的接口,如今使用开发模式最苦逼的就是无法回复图片,还不如编辑模式,啥都能回复!
接口下发的消息格式:
与回复文本消息的数据字段的不一样:
MsgType:回复消息类型为image
MediaId: 图片的id,须要经过其余接口上传图片得到
上传图片限制:1MB,支持JPG格式
三、回复语音消息(未开放)
这是个未公开的接口,语音消息展示形式跟音乐消息仍是不同的,也不会出现某些安卓版微信没法播放音乐消息的状况。
接口下发的消息格式:
与回复文本消息的数据字段的不一样:
MsgType:回复消息类型为voice
MediaId: 语音的id,须要经过其余接口上传语音得到
上传语音限制:1MB,播放长度不超过60s,支持AMR格式
四、回复视频消息(未开放)
这是个未公开的接口,和图片消息差很少。
接口下发的消息格式:
与回复文本消息的数据字段的不一样:
MsgType:回复消息类型为video
MediaId: 视频的id,须要经过其余接口上传视频得到
ThumbMediaId:缩略图的id,经过上传图片(80*80)获得id
视频限制:10MB,支持MP4格式
缩略图限制:64KB,支持JPG格式
五、回复音乐消息
不少人问我为何能够播放音乐,没什么秘密,就是用这个接口了。
接口下发的消息格式:
与回复文本消息的数据字段的不一样:
MsgType:回复消息类型为music
Title: 音乐标题,我常常是放歌名
Description: 音乐描述,我常常是放歌手名字
MusicUrl: 音乐连接,支持MP三、WMV、AAC等在线音乐格式
HQMusicUrl:高质量音乐连接,WIFI环境优先使用该连接播放音乐,能够和上面的同样。
六、回复图文消息
开发模式里最喜欢的就是这个了,好比能够用多图文消息作个欢迎菜单,能够作图文历史文章查询。
接口下发的消息格式:
与回复文本消息的数据字段的不一样:
MsgType:回复消息类型为news
ArticleCount:图文消息个数,限制为10条之内,这个必须准确,有多少条图文消息就得填写多少,否则会出错。
Articles:多条图文消息信息,默认第一个item为大图,每一个item的结构彻底同样,每一个item表示一条图文消息。
Title:图文消息标题
Description:图文消息描述
PicUrl:图片连接,支持JPG、PNG格式,较好的效果为大图640320,小图8080。
Url:点击图文消息跳转连接,这个连接能够是本身网站连接,可是记得申请白名单,否则出现警告提示用户通常不会点击进去。
这些接口都未对外开放,看看就行,若是在写教程中途官方开放了,我也会写进。
一、用户信息接口(未开放)
公众平台获取关注用户的信息。
接口请求地址:
https://api.weixin.qq.com/cgi-bin/user/info
接口返回信息:
subscribe:用户是否订阅该公众号标识,值为0时,拉取不到其他信息
openid:用户的标识,对当前公众号惟一
nickname:用户的昵称
sex:用户的性别,值等于1时为男性,值等于2时为女性
city:用户所在城市
language:用户的语言,简体中文为zh_CN
二、媒体文件上传接口(未开放)
上传图片、语音、视频等文件,获取media_id,media_id可复用。
接口请求地址:
http://api.weixin.qq.com/cgi-bin/media/upload
接口返回信息:
type:媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
media_id:媒体文件上传后获取的惟一标识
created_at:媒体文件上传时间
三、媒体文件获取接口(未开放)
经过media_id获取图片、语音、视频等文件。
接口请求地址:
http://api.weixin.qq.com/cgi-bin/media/get
四、拉取关注接口(未开放)
拉取公众帐户关注用户列表。
接口请求地址:
https://api.weixin.qq.com/cgi-bin/user/get
接口返回信息:
total:关注该公众帐号的总用户数
count:拉取的OPENID个数,最大值为10000
data:列表数据,OPENID的列表
next_openid:下一次拉取的关注用户的偏移值
关于微信开发模式的初步介绍到此为止,这个文章是开发接口的速查手册,后面实际教程中会常常用到,请记得用微收藏保存起来!明天先讲新浪的云计算平台注册和使用,工欲善其事必先利其器!