codecamp

微信消息分析数据接口

消息分析数据接口

微信消息分析


微信公众平台于2015年1月6日启动了数据接口的邀请内测。通过数据接口,开发者可以获取与公众平台官网统计模块类似但更灵活的数据,还可根据需要进行高级处理。

在公众号登录授权机制的权限集划分中,消息分析数据接口属于消息管理权限。

向所有公众号开发者开放数据接口的时间将另行通知。

请注意:

1、接口侧的公众号数据的数据库中仅存储了2014年12月1日之后的数据,将查询不到在此之前的日期,即使有查到,也是不可信的脏数据;
2、请开发者在调用接口获取数据后,将数据保存在自身数据库中,即加快下次用户的访问速度,也降低了微信侧接口调用的不必要损耗。

消息分析数据接口指的是用于获得公众平台官网数据统计模块中消息分析数据的接口,具体接口列表如下(暂无消息关键词数据接口):

接口名称最大时间跨度接口调用地址(必须使用https)
获取消息发送概况数据(getupstreammsg)7https://api.weixin.qq.com/datacube/getupstreammsg?access_token=ACCESS_TOKEN
获取消息分送分时数据(getupstreammsghour)1https://api.weixin.qq.com/datacube/getupstreammsghour?access_token=ACCESS_TOKEN
获取消息发送周数据(getupstreammsgweek)30https://api.weixin.qq.com/datacube/getupstreammsgweek?access_token=ACCESS_TOKEN
获取消息发送月数据(getupstreammsgmonth)30https://api.weixin.qq.com/datacube/getupstreammsgmonth?access_token=ACCESS_TOKEN
获取消息发送分布数据(getupstreammsgdist)15https://api.weixin.qq.com/datacube/getupstreammsgdist?access_token=ACCESS_TOKEN
获取消息发送分布周数据(getupstreammsgdistweek)30https://api.weixin.qq.com/datacube/getupstreammsgdistweek?access_token=ACCESS_TOKEN
获取消息发送分布月数据(getupstreammsgdistmonth)30https://api.weixin.qq.com/datacube/getupstreammsgdistmonth?access_token=ACCESS_TOKEN

最大时间跨度是指一次接口调用时最大可获取数据的时间范围,如最大时间跨度为7是指最多一次性获取7天的数据。access_token的实际值请通过“获取access_token”来获取。

关于周数据与月数据,请注意:每个月/周的周期数据的数据标注日期在当月/当周的第一天(当月1日或周一)。在某一月/周过后去调用接口,才能获取到该周期的数据。比如,在12月1日以(11月1日-11月5日)作为(begin_date和end_date)调用获取月数据接口,可以获取到11月1日的月数据(即11月的月数据)。

接口调用请求说明

消息分析数据接口(包括接口列表中的所有接口)需要向相应接口调用地址POST以下示例数据包:

{ 
    "begin_date": "2014-12-07", 
    "end_date": "2014-12-08"
}

调用参数说明

参数是否必须说明
access_token调用接口凭证
begin_date获取数据的起始日期,begin_date和end_date的差值需小于“最大时间跨度”(比如最大时间跨度为1时,begin_date和end_date的差值只能为0,才能小于1),否则会报错
end_date获取数据的结束日期,end_date允许设置的最大值为昨日

返回说明

获取消息发送概况数据接口需要向相应接口调用地址POST以下数据包:

{ 
   "list": [ 
       { 
           "ref_date": "2014-12-07", 
           "msg_type": 1, 
           "msg_user": 282, 
           "msg_count": 817
       }
	//后续还有同一ref_date的不同msg_type的数据,以及不同ref_date(在时间范围内)的数据
   ]
}

获取消息分送分时数据接口需要向相应接口调用地址POST以下数据包:

{ 
   "list": [ 
       { 
           "ref_date": "2014-12-07", 
           "ref_hour": 0, 
           "msg_type": 1, 
           "msg_user": 9, 
           "msg_count": 10
       }
	//后续还有同一ref_hour的不同msg_type的数据,以及不同ref_hour的数据,ref_date固定,因为最大时间跨度为1
   ]
}

获取消息发送周数据接口的返回JSON数据包如下:

{ 
   "list": [ 
       { 
           "ref_date": "2014-12-08", 
           "msg_type": 1, 
           "msg_user": 16, 
           "msg_count": 27
       }
		//后续还有同一ref_date下不同msg_type的数据,及不同ref_date的数据
   ]
}

获取消息发送月数据接口的返回JSON数据包如下:

{ 
   "list": [ 
       { 
           "ref_date": "2014-11-01", 
           "msg_type": 1, 
           "msg_user": 7989, 
           "msg_count": 42206
       }
	//后续还有同一ref_date下不同msg_type的数据,及不同ref_date的数据
   ]
}

获取消息发送分布数据接口的返回JSON数据包如下:

{ 
   "list": [ 
       { 
           "ref_date": "2014-12-07", 
           "count_interval": 1, 
           "msg_user": 246
       }
	//后续还有同一ref_date下不同count_interval的数据,及不同ref_date的数据
   ]
}

获取消息发送分布周数据接口的返回JSON数据包如下:

{ 
   "list": [ 
       { 
           "ref_date": "2014-12-07", 
           "count_interval": 1, 
           "msg_user": 246
       }
	//后续还有同一ref_date下不同count_interval的数据,及不同ref_date的数据
   ]
}

获取消息发送分布月数据接口的返回JSON数据包如下:

{ 
   "list": [ 
       { 
           "ref_date": "2014-12-07", 
           "count_interval": 1, 
           "msg_user": 246
       }
	//后续还有同一ref_date下不同count_interval的数据,及不同ref_date的数据
   ]
}

返回参数说明

参数说明
ref_date数据的日期,需在begin_date和end_date之间
ref_hour数据的小时,包括从000到2300,分别代表的是[000,100)到[2300,2400),即每日的第1小时和最后1小时
msg_type消息类型,代表含义如下:

1代表文字 2代表图片 3代表语音 4代表视频 6代表第三方应用消息(链接消息)

msg_user上行发送了(向公众号发送了)消息的用户数
msg_count上行发送了消息的消息总数
count_interval当日发送消息量分布的区间,0代表 “0”,1代表“1-5”,2代表“6-10”,3代表“10次以上”
int_page_read_count图文页的阅读次数
ori_page_read_user原文页(点击图文页“阅读原文”进入的页面)的阅读人数,无原文页时此处数据为0

错误时微信会返回错误码等信息,具体错误码查询,请见:全局返回码说明

微信图文分析数据接口
微信接口分析数据接口
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

微信门店

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }