使用公众平台接口进行开发.docx
《使用公众平台接口进行开发.docx》由会员分享,可在线阅读,更多相关《使用公众平台接口进行开发.docx(18页珍藏版)》请在冰豆网上搜索。
使用公众平台接口进行开发
使用公众平台接口进行开发
查看文档
使用公众平台的开发接口,公众号可在自身服务器上接收用户的微信消息,并可按需回复。
此外,我们还提供了更多更高级的功能和体验,如会话界面的自定义菜单、获取更多类型的消息等。
消息接口指南
返回
出自开放平台
跳转到:
导航,搜索
目录
[隐藏]
∙1简介
∙2申请消息接口
∙3网址接入
∙4消息推送
o4.1文本消息
o4.2图片消息
o4.3地理位置消息
o4.4链接消息
o4.5事件推送
∙5消息回复
o5.1回复文本消息
o5.2回复音乐消息
o5.3回复图文消息
∙6注意事项
∙7示例代码
简介
公众平台消息接口为开发者提供了一种新的消息处理方式。
申请消息接口
点击申请,填写网址url和token,其中token可由开发者可以任意填写,用作生成签名。
网址接入
公众平台用户提交信息后,微信服务器将发送GET请求到填写的URL上,并且带上四个参数:
参数
描述
signature
微信加密签名
timestamp
时间戳
nonce
随机数
echostr
随机字符串
开发者通过检验signature对请求进行校验(下面有校验方式)。
若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。
signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
加密/校验流程:
1.将token、timestamp、nonce三个参数进行字典序排序
2.将三个参数字符串拼接成一个字符串进行sha1加密
3.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
消息推送
当普通微信用户向公众账号发消息时,微信服务器将POST该消息到填写的URL上。
结构如下:
文本消息
[CDATA[toUser]]>
[CDATA[fromUser]]>
1348831860
[CDATA[text]]>
[CDATA[thisisatest]]>
1234567890123456
参数
描述
ToUserName
开发者微信号
FromUserName
发送方帐号(一个OpenID)
CreateTime
消息创建时间(整型)
MsgType
text
Content
文本消息内容
MsgId
消息id,64位整型
图片消息
[CDATA[toUser]]>
[CDATA[fromUser]]>
1348831860
[CDATA[image]]>
[CDATA[thisisaurl]]>
1234567890123456
参数
描述
ToUserName
开发者微信号
FromUserName
发送方帐号(一个OpenID)
CreateTime
消息创建时间(整型)
MsgType
image
PicUrl
图片链接
MsgId
消息id,64位整型
地理位置消息
[CDATA[toUser]]>
[CDATA[fromUser]]>
1351776360
[CDATA[location]]>
23.134521
113.358803
20
1234567890123456
参数
描述
ToUserName
开发者微信号
FromUserName
发送方帐号(一个OpenID)
CreateTime
消息创建时间(整型)
MsgType
location
Location_X
地理位置纬度
Location_Y
地理位置经度
Scale
地图缩放大小
Label
地理位置信息
MsgId
消息id,64位整型
链接消息
[CDATA[toUser]]>
[CDATA[fromUser]]>
1351776360
[CDATA[link]]>
[CDATA[公众平台官网链接]]>
[CDATA[公众平台官网链接]]>
[CDATA[url]]>
1234567890123456
参数
描述
ToUserName
接收方微信号
FromUserName
发送方微信号,若为普通用户,则是一个OpenID
CreateTime
消息创建时间
MsgType
消息类型,link
Title
消息标题
Description
消息描述
Url
消息链接
MsgId
消息id,64位整型
事件推送
事件推送只支持微信4.5版本,目前开启自定义菜单接口事件推送、关注与取消关注事件推送。
其余功能即将开放,敬请期待。
[CDATA[toUser]]>
[CDATA[FromUser]]>
123456789
[CDATA[event]]>
[CDATA[EVENT]]>
[CDATA[EVENTKEY]]>
参数
描述
ToUserName
接收方微信号
FromUserName
发送方微信号,若为普通用户,则是一个OpenID
CreateTime
消息创建时间
MsgType
消息类型,event
Event
事件类型,subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单点击事件)
EventKey
事件KEY值,与自定义菜单接口中KEY值对应
消息回复
对于每一个POST请求,开发者在响应包中返回特定xml结构,对该消息进行响应(现支持回复文本、图文、语音、视频、音乐和对收到的消息进行星标操作)。
微信服务器在五秒内收不到响应会断掉连接。
回复xml结构如下:
回复文本消息
[CDATA[toUser]]>
[CDATA[fromUser]]>
12345678
[CDATA[text]]>
[CDATA[content]]>
0
参数
描述
ToUserName
接收方帐号(收到的OpenID)
FromUserName
开发者微信号
CreateTime
消息创建时间
MsgType
text
Content
回复的消息内容,长度不超过2048字节
FuncFlag
位0x0001被标志时,星标刚收到的消息。
回复音乐消息
[CDATA[toUser]]>
[CDATA[fromUser]]>
12345678
[CDATA[music]]>
[CDATA[TITLE]]>
[CDATA[DESCRIPTION]]>
[CDATA[MUSIC_Url]]>
[CDATA[HQ_MUSIC_Url]]>
0
参数
描述
ToUserName
接收方帐号(收到的OpenID)
FromUserName
开发者微信号
CreateTime
消息创建时间
MsgType
music
MusicUrl
音乐链接
HQMusicUrl
高质量音乐链接,WIFI环境优先使用该链接播放音乐
FuncFlag
位0x0001被标志时,星标刚收到的消息。
回复图文消息
[CDATA[toUser]]>
[CDATA[fromUser]]>
12345678
[CDATA[news]]>
2
[CDATA[title1]]>
[CDATA[description1]]>
[CDATA[picurl]]>
[CDATA[url]]>
[CDATA[title]]>
[CDATA[description]]>
[CDATA[picurl]]>
[CDATA[url]]>
1
参数
描述
ToUserName
接收方帐号(收到的OpenID)
FromUserName
开发者微信号
CreateTime
消息创建时间
MsgType
news
ArticleCount
图文消息个数,限制为10条以内
Articles
多条图文消息信息,默认第一个item为大图
Title
图文消息标题
Description
图文消息描述
PicUrl
图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80。
Url
点击图文消息跳转链接
注意事项
1.用户OpenID对一个公众号是固定唯一的串
2.请使用80端口
示例代码
PHP:
下载
通用接口文档
返回
出自开放平台
跳转到:
导航,搜索
简介
通用接口是使用HTTP请求,让开发者直接与微信服务器交互,实现媒体文件上传、媒体文件获取等功能,达到获取图片、语音、视频等媒体文件的目的。
调用接口所需要的access_token必须通过获取凭证接口获取。
获取凭证
接口说明
在使用通用接口前,你需要做以下两步工作:
1.拥有一个微信公众账号,并获取到appid和appsecret(在公众平台申请内测资格,审核通过后可获得)
2.通过获取凭证接口获取到access_token
注意:
access_token是第三方访问api资源的票据;
access_token对应于公众号是全局唯一的票据,重复获取将导致上次获取的access_token失效。
请求说明
http请求方式:
GET
参数说明
参数
是否必须
说明
grant_type
是
获取access_token填写client_credential
appid
是
第三方用户唯一凭证
secret
是
第三方用户唯一凭证密钥,既appsecret
返回说明
正确的Json返回结果:
{"access_token":
"ACCESS_TOKEN","expires_in":
7200}
参数
说明
access_token
获取到的凭证
expires_in
凭证有效时间,单位:
秒
错误的Json返回示例:
{"errcode":
40013,"errmsg":
"invalidappid"}
统一返回码说明
自定义菜单接口
返回
出自开放平台
跳转到:
导航,搜索
目录
[隐藏]
∙1简介
∙2菜单创建
∙3菜单查询
∙4菜单删除
简介
开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建、查询和删除等操作。
自定义菜单接口可实现以下类型按钮:
click(点击事件):
用户点击click类型按钮后,微信服务器会通过消息接口(event类型)推送点击事件给开发者,并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值进行消息回复。
创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来。
建议测试时可以尝试取消关注公众账号后,再次关注,则可以看到创建后的效果。
菜单创建
接口说明
通过POST一个特定结构体,实现在微信客户端创建自定义菜单。
请求说明
http请求方式:
POST
请求示例
{
"button":
[
{
"type":
"click",
"name":
"今日歌曲",
"key":
"V1001_TODAY_MUSIC"
},
{
"type":
"click",
"name":
"歌手简介",
"key":
"V1001_TODAY_SINGER"
},
{
"name":
"菜单",
"sub_button":
[
{
"type":
"click",
"name":
"helloword",
"key":
"V1001_HELLO_WORLD"
},
{
"type":
"click",
"name":
"赞一下我们",
"key":
"V1001_GOOD"
}]
}]
}
创建后效果:
参数说明
参数
是否必须
说明
button
是
按钮数组,按钮个数应为2~3个
sub_button
否
子按钮数组,按钮个数应为2~5个
type
是
按钮类型,目前有click类型
name
是
按钮描述,既按钮名字,不超过16个字节,子菜单不超过40个字节
key
类型为click必须
按钮KEY值,用于消息接口(event类型)推送,不超过128字节
返回说明
正确的Json返回结果:
{"errcode":
0,"errmsg":
"ok"}
错误的Json返回结果
{"errcode":
40018,"errmsg":
"invalidbuttonnamesize"}
统一返回码说明
菜单查询
接口说明
查询当前使用的自定义菜单结构。
请求说明
http请求方式:
GET
返回说明
对应创建接口,正确的Json返回结果:
{"menu":
{"button":
[{"type":
"click","name":
"今日歌曲","key":
"V1001_TODAY_MUSIC","sub_button":
[]},{"type":
"click","name":
"歌手简介","key":
"V1001_TODAY_SINGER","sub_button":
[]},{"name":
"菜单","sub_button":
[{"type":
"click","name":
"helloword","key":
"V1001_HELLO_WORLD","sub_button":
[]},{"type":
"click","name":
"赞一下我们","key":
"V1001_GOOD","sub_button":
[]}]}]}}
统一返回码说明
菜单删除
接口说明
取消当前使用的自定义菜单。
请求说明
http请求方式:
GET
返回说明
对应创建接口,正确的Json返回结果:
{"errcode":
0,"errmsg":
"ok"}
统一返回码说明
接口权限
返回
出自开放平台
跳转到:
导航,搜索
简介
请先确保公众账号已经拥有接口调用权限。
默认每个公众帐号都不能超过下面的频率限制。
当超出调用接口频率限制,调用对应接口将会收到如下错误信息:
{"errcode":
45009,"errmsg":
"apifreqoutoflimit"}
接口调用频率限制
接口名称
频率限制
获取凭证接口
200(次/天)
自定义菜单创建接口
100(次/天)
自定义菜单查询接口
1000(次/天)
自定义菜单删除接口
100(次/天)
接口权限
返回
出自开放平台
跳转到:
导航,搜索
简介
请先确保公众账号已经拥有接口调用权限。
默认每个公众帐号都不能超过下面的频率限制。
当超出调用接口频率限制,调用对应接口将会收到如下错误信息:
{"errcode":
45009,"errmsg":
"apifreqoutoflimit"}
接口调用频率限制
接口名称
频率限制
获取凭证接口
200(次/天)
自定义菜单创建接口
100(次/天)
自定义菜单查询接口
1000(次/天)
自定义菜单删除接口
100(次/天)