获取凭证接口
接口说明
在使用通用接口前,你需要做以下两步工作:
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"}
拉取关注接口
接口说明
拉取公众账户关注用户列表
请求说明
参数说明
参数 | 是否必须 | 说明 |
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"}