微信公众平台关于消息接口的资料(转载)
获取凭证接口
接口说明
在使用通用接口前,你需要做以下两步工作:
1.拥有一个微信公众账号,并获取到appid和appsecret
2.通过获取凭证接口获取到access_token
access_token是第三方访问api资源的票据。
请求说明
http请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
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":"invalid appid"}
用户信息接口
接口说明
第三方通过openid获取用户信息。
请求说明
http请求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
openid | 是 | 普通用户的标识,对当前公众号唯一 |
返回说明
正确的Json返回结果:
{"subscribe":1,"openid":"OPENID","nickname":"NICKNAME","sex":1,"language":"LANGUAGE","city":"CITY"}
参数 | 说明 |
---|---|
subscribe | 用户是否订阅该公众号标识,值为0时,拉取不到其余信息 |
openid | 用户的标识,对当前公众号唯一 |
nickname | 用户的昵称 |
sex | 用户的性别,值等于1时为男性,值等于2时为女性 |
city | 用户所在城市 |
language | 用户的语言,简体中文为zh_CN |
错误的Json返回结果:
{"errcode":40013,"errmsg":"invalid appid"}
媒体文件上传接口
接口说明
上传图片、语音、视频等文件,获取media_id,media_id可复用。
请求说明
http请求方式: POST/FORM http://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
type | 是 | 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb) |
media | 是 | form-data中媒体文件标识,有filename、filelength、content-type等信息 |
请求示例
curl -F "media=@test.jpg" "http://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE"
返回说明
正确的Json返回结果:
{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}
参数 | 说明 |
---|---|
type | 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb) |
media_id | 媒体文件上传后获取的唯一标识 |
created_at | 媒体文件上传时间 |
错误的Json返回示例:
{"errcode":40004,"errmsg":"invalid media type"}
注意事项
1.上传的媒体文件限制:
图片(image): 1MB,支持JPG格式 语音(voice):1MB,播放长度不超过60s,支持AMR格式 视频(video):10MB,支持MP4格式 缩略图(thumb):64KB,支持JPG格式
2.媒体文件在后台保存时间为3天,即3天后media_id失效
媒体文件获取接口
接口说明
通过media_id获取图片、语音、视频等文件
请求说明
http请求方式: GET http://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
media_id | 是 | 媒体文件id |
请求示例
curl -I -G "http://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID" 返回头: HTTP/1.1 200 OK Connection: close Content-Type: image/jpeg Content-disposition: attachment; filename="MEDIA_ID.jpg" Date: Sun, 06 Jan 2013 10:20:18 GMT Cache-Control: no-cache, must-revalidate Content-Length: 339721 curl -G "http://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID" 错误返回: {"errcode":40007,"errmsg":"invalid media_id"}
发送消息接口
接口说明
发送消息给普通用户
请求说明
http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN 发送文本 { "touser":"OPENID", "msgtype":"text", "text": { "content":"Hello World" } } 发送图片 { "touser":"OPENID", "msgtype":"image", "image": { "media_id":"MEDIA_ID" } } 发送语音 { "touser":"OPENID", "msgtype":"voice", "voice": { "media_id":"MEDIA_ID" } } 发送视频 { "touser":"OPENID", "msgtype":"video", "video": { "media_id":"MEDIA_ID", "thumb_media_id":"THUMB_MEDIA_ID" } } 发送音乐消息 { "touser":"OPENID", "msgtype":"music", "music": { "title":"MUSIC_TITLE", "description":"MUSIC_DESCRIPTION", "musicurl":"MUSIC_URL", "hqmusicurl":"HQ_MUSIC_URL", "thumb_media_id":"THUMB_MEDIA_ID" } } 发送图文消息(支持1-10条图文展示) { "touser":"OPENID", "msgtype":"news", "news":{ "articles": [ { "title":"Happy Day", "description":"Is Really A Happy Day", "url":"URL", "picurl":"PIC_URL" } ] } }
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
touser | 是 | 普通用户openid |
msgtype | 是 | 消息类型,支持文本(text)、图片(image)、语音(voice)、视频(video) |
media_id | image必须 voice必须 video必须 |
媒体文件id |
thumb_media_id | video必须 music非必须 |
媒体文件id |
title | 否 | 消息标题 |
description | 否 | 消息描述 |
url | 否 | 点击链接跳转地址 |
picurl | 否 | 图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80 |
musicurl | 否 | 音乐链接 |
hqmusicurl | 否 | 高品质音乐链接,wifi环境优先使用该链接播放音乐 |
请求示例
curl -d "{\"touser\":\"OPENID\",\"msgtype\":\"text\",\"text\":{\"content\":\"Hello World\"}}" "http://api.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN" 返回: {"errcode":0,"errmsg":"ok"}
返回说明
正确的Json返回结果:
{"errcode":0,"errmsg":"ok"}
错误的Json返回示例:
{"errcode":40008,"errmsg":"invalid message type"}
媒体文件发送接口
接口说明
使用/media/upload和/message/send的接口,发送媒体文件一步到位
请求说明
http请求方式: POST/FORM http://api.weixin.qq.com/cgi-bin/media/send?access_token=ACCESS_TOKEN&type=TYPE&touser=OPENID
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
type | 是 | 媒体文件类型 |
touser | 是 | 普通用户OPENID |
请求示例
curl -F "media=@test.mp4" "http://api.weixin.qq.com/cgi-bin/media/send?access_token=ACCESS_TOKEN&type=video&touser=OPENID" 返回: {"errcode":0,"errmsg":"ok"}
返回说明
正确的Json返回结果:
{"errcode":0,"errmsg":"ok"}
错误的Json返回示例:
{"errcode":40004,"errmsg":"invalid media type"}
拉取关注接口
接口说明
拉取公众账户关注用户列表
请求说明
http请求方式: GET https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
next_openid | 否 | 获取关注用户列表偏移量,不填默认从头开始拉取 |
返回说明
正确的Json返回结果:
{"total":2,"count":2,"data":{"openid":["","OPENID1","OPENID2"]},"next_openid":"NEXT_OPENID"}
参数 | 说明 |
---|---|
total | 关注该公众账号的总用户数 |
count | 拉取的OPENID个数,最大值为10000 |
data | 列表数据,OPENID的列表 |
next_openid | 下一次拉取的关注用户的偏移值 |
错误的Json返回示例:
{"errcode":40013,"errmsg":"invalid appid"}
注意事项
若公众账号关注人数超过10000,则可以通过填写next_openid的值获取 例子:
公众账号A拥有23000个关注的人,想通过拉取关注接口获取所有关注的人,那么分别请求url如下: https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN 返回结果: { "total":23000, "count":10000, "data":{" openid":[ "OPENID1", "OPENID2", ..., "OPENID10000" ] }, "next_openid":"NEXT_OPENID1" } https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID1 返回结果: { "total":23000, "count":10000, "data":{ "openid":[ "OPENID10001", "OPENID10002", ..., "OPENID20000" ] }, "next_openid":"NEXT_OPENID2" } https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID2 返回结果: { "total":23000, "count":3000, "data":{" "openid":[ "OPENID20001", "OPENID20002", ..., "OPENID23000" ] }, "next_openid":"NEXT_OPENID3" } 转载自:http://www.5eblog.com/2013/03/22/article655.html