123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360 |
- # -*- coding: utf-8 -*-
- from __future__ import absolute_import, unicode_literals
- import datetime
- import six
- from library.wechatpy.client.api.base import BaseWeChatAPI
- class WeChatDataCube(BaseWeChatAPI):
- API_BASE_URL = 'https://api.weixin.qq.com/datacube/'
- @classmethod
- def _to_date_str(cls, date):
- if isinstance(date, (datetime.datetime, datetime.date)):
- return date.strftime('%Y-%m-%d')
- elif isinstance(date, six.string_types):
- return date
- else:
- raise ValueError('Can not convert %s type to str', type(date))
- def get_user_summary(self, begin_date, end_date):
- """
- 获取用户增减数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/3/ecfed6e1a0a03b5f35e5efac98e864b7.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getusersummary',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- }
- )
- return res['list']
- def get_user_cumulate(self, begin_date, end_date):
- """
- 获取累计用户数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/3/ecfed6e1a0a03b5f35e5efac98e864b7.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getusercumulate',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_interface_summary(self, begin_date, end_date):
- """
- 获取接口分析数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/8/30ed81ae38cf4f977194bf1a5db73668.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getinterfacesummary',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_interface_summary_hour(self, begin_date, end_date):
- """
- 获取接口分析分时数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/8/30ed81ae38cf4f977194bf1a5db73668.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getinterfacesummaryhour',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_article_summary(self, begin_date, end_date):
- """
- 获取图文群发每日数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/8/c0453610fb5131d1fcb17b4e87c82050.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getarticlesummary',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_article_total(self, begin_date, end_date):
- """
- 获取图文群发总数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/8/c0453610fb5131d1fcb17b4e87c82050.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getarticletotal',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_user_read(self, begin_date, end_date):
- """
- 获取图文统计数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/8/c0453610fb5131d1fcb17b4e87c82050.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getuserread',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_user_read_hour(self, begin_date, end_date):
- """
- 获取图文分时统计数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/8/c0453610fb5131d1fcb17b4e87c82050.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getuserreadhour',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_user_share(self, begin_date, end_date):
- """
- 获取图文分享转发数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/8/c0453610fb5131d1fcb17b4e87c82050.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getusershare',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_user_share_hour(self, begin_date, end_date):
- """
- 获取图文分享转发分时数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/8/c0453610fb5131d1fcb17b4e87c82050.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getusersharehour',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_upstream_msg(self, begin_date, end_date):
- """
- 获取消息发送概况数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/12/32d42ad542f2e4fc8a8aa60e1bce9838.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getupstreammsg',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_upstream_msg_hour(self, begin_date, end_date):
- """
- 获取消息发送分时数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/12/32d42ad542f2e4fc8a8aa60e1bce9838.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getupstreammsghour',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_upstream_msg_week(self, begin_date, end_date):
- """
- 获取消息发送周数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/12/32d42ad542f2e4fc8a8aa60e1bce9838.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getupstreammsgweek',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_upstream_msg_month(self, begin_date, end_date):
- """
- 获取消息发送月数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/12/32d42ad542f2e4fc8a8aa60e1bce9838.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getupstreammsgmonth',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_upstream_msg_dist(self, begin_date, end_date):
- """
- 获取消息发送分布数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/12/32d42ad542f2e4fc8a8aa60e1bce9838.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getupstreammsgdist',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_upstream_msg_dist_week(self, begin_date, end_date):
- """
- 获取消息发送分布数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/12/32d42ad542f2e4fc8a8aa60e1bce9838.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getupstreammsgdistweek',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
- def get_upstream_msg_dist_month(self, begin_date, end_date):
- """
- 获取消息发送分布数据
- 详情请参考
- http://mp.weixin.qq.com/wiki/12/32d42ad542f2e4fc8a8aa60e1bce9838.html
- :param begin_date: 起始日期
- :param end_date: 结束日期
- :return: 统计数据列表
- """
- res = self._post(
- 'getupstreammsgdistmonth',
- data={
- 'begin_date': self._to_date_str(begin_date),
- 'end_date': self._to_date_str(end_date)
- },
- result_processor=lambda x: x['list']
- )
- return res
|