微信公众平台关于消息接口的资料(转载)

获取凭证接口

接口说明

在使用通用接口前,你需要做以下两步工作:

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
原文地址:https://www.cnblogs.com/codeloves/p/3182082.html