php版微信数据统计接口用法示例

本文实例讲述了php版微信数据统计接口用法。分享给大家供大家参考,具体如下:

php版微信数据统计接口其实是非常的好用了在前版本还没有此功能是后面的版本增加上去了,下面来看一个php版微信数据统计接口的例子:

微信在1月6日时放出了新的数据分析接口传送门:

请注意:

1、接口侧的公众号数据的数据库中仅存储了2014年12月1日之后的数据,将查询不到在此之前的日期,即使有查到,也是不可信的脏数据;

2、请开发者在调用接口获取数据后,将数据保存在自身数据库中,即加快下次用户的访问速度,也降低了微信侧接口调用的不必要损耗。

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

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

接口调用请求说明

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

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

调用参数说明:

粗略看了下,暂时还是内测阶段,不过因为是新接口,所以要改进下本站所用的微信高级接口的类。修改如下:

在类里加上新接口常量:

API_DATA_CUBE_URL = 'https://api.weixin.qq.com/datacube',
API_TYPE_DATA = 'datacube'

修改call方法:因为它要求URL参数只是access token所以跟以前JSON时一样,不过要在判断里加入datacube的判断(注:注释已经说明):

public function call($api_name, $params = array(), $type = self::GET, $api_type = self::API_TYPE_CGI) {
    //加入datacube后,用switch来组接口URL
    switch(true) {
      case $api_type == self::API_TYPE_PAY :
        $url = self::PAY_URL.$api_name;
        break;
      case $api_type == self::API_TYPE_DATA:
        $url = self::API_DATA_CUBE_URL.$api_name;
        break;
      default :
        $url = self::API_URL_PREFIX.$api_name;
    }
    if (in_array($api_name, self::$_no_need_token_apis)) {
      $res = $this->request($url, $params, $type);
      if ($res) {
        return $res;
      }
    }
    $this->_access_token = $this->getAccessToken();
    if ($this->_access_token) {
      //加多个or判断带上access_token
      if ($type == self::JSON || $api_type == self::API_TYPE_DATA) {
        $url = $url.'?access_token='.$this->_access_token;
      } else {
        $params['access_token'] = $this->_access_token;
      }
      $res = $this->request($url, $params, $type);
      if ($res) {
        return $res;
      }
    }
    return false;
}

最后CLI方式call文档中一个getinterfacesummary接口调试(注意:是POST方式给接口):

if (isset($argc) && $argc >= 1 && $argv[0] == __FILE__) {
  $client = new WechatJSON(array(
    WechatJSON::APP_ID => 'wx78sfsd023744d51',
    WechatJSON::APP_SECRET => '9ba3476db1fsfsff512esf2f630fb9',
  ));
  $res = $client->call('/getinterfacesummary', array(
    'begin_date' => '2014-12-01',
    'end_date' => '2014-12-31'
  ), WechatJSON::POST, WechatJSON::API_TYPE_DATA);
  if (!$res) {
    var_dump($client->_error);
  }
  var_dump($res);
}

运行结果,虽然是API 未授权(毕竟还是内测有条件的合作伙伴有资料,公众号的就等吧):

后记,以后再做个linux任务让后台自己每隔一段时间(一周或30天)因为数据统计接口有的是7天,有的是30天。这样执行取到数据再写进库表,生成图报表,省下自己log一些官方已经给你log的统计!

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP微信开发技巧汇总》、《PHP编码与转码操作技巧汇总》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

时间: 2016-10-09

PHP编程计算文件或数组中单词出现频率的方法

本文实例讲述了PHP编程计算文件或数组中单词出现频率的方法.分享给大家供大家参考,具体如下: 如果是小文件,可以一次性读入到数组中,使用方便的数组计数函数进行词频统计(假设文件中内容都是空格隔开的单词): <?php $str = file_get_contents("/path/to/file.txt"); //get string from file preg_match_all("/\b(\w+[-]\w+)|(\w+)\b/",$str,$r); //

使用php统计字符串中中英文字符的个数

复制代码 代码如下: <?phpecho $str = "43fdf测试fdsfadaf43543543职工问防盗锁防盗锁5345gfdgd";preg_match_all("/[0-9]{1}/",$str,$arrNum);preg_match_all("/[a-zA-Z]{1}/",$str,$arrAl);preg_match_all("/([/x{4e00}-/x{9fa5}]){1}/u",$str,$arr

php精确的统计在线人数的方法

这是一个非常精确的,通过php实现统计在线人数的方法,想知道怎么实现的请耐心阅读. <?php $filename='online.txt';//数据文件 $cookiename='VGOTCN_OnLineCount';//cookie名称 $onlinetime=600;//在线有效时间,单位:秒 (即600等于10分钟) $online=file($filename); //PHP file() 函数把整个文件读入一个数组中.与 file_get_contents() 类似,不同的是 fi

php简单统计中文个数的方法

本文实例讲述了php简单统计中文个数的方法.分享给大家供大家参考,具体如下: 之前的公司是做外贸的用到的都是英文所以统计的长度的时候是用strlen这个函数,一直也没有错误,但是现在统计中文的时候这个就出错了,现在做一下记录测试 <?php echo strlen("你好ABC") . ""; # 输出 9 echo mb_strlen("你好ABC", 'UTF-8') . ""; # 输出 5 echo mb_str

也谈php网站在线人数统计

function checkOnline($userid,$tempid=null)      {      $conn = connect(); //对于所有用户      //先设置自己为在线      $stmt = "UPDATE ".DB_NAME.".USER SET IsOnline='Y' WHERE UserID=".$userid;      $result = query($stmt,$conn);      //info($stmt);   

php英文单词统计器

本文实例为大家分享了英文单词统计器php 实现,供大家参考,具体内容如下 程序开始运行, 按"浏览"钮选择一个英文文档, 再按"统计 Statistics"钮, 即可得到按字母顺序列出的所有单词,及其出现的次数 用于测试的数据文档: data.txt 驱动程序:word.php output.php 和 StringTokenizer.php 是 要求在同一个文件夹中的程序 1. words_statistics_PHP.png    2. word.php <

PHP统计数值数组中出现频率最多的10个数字的方法

本文实例讲述了PHP统计数值数组中出现频率最多的10个数字的方法.分享给大家供大家参考.具体分析如下: 该问题属于TOPK范畴,统计单词出现频率,做报表,数据统计的时会常用! php代码如下: //随机生成数值数组 for($i=0;$i<1000;$i++){ $ary[]=rand(1,1000); } //统计数组中所有的值出现的次数 $ary=array_count_values($ary); arsort($ary);//倒序排序 $i=1; foreach($ary as $key=

php统计数组元素个数的方法

count():对数组中的元素个数进行统计; sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0; array_count_value():统计每个特定的值在数组$array中出现过的次数; 如: $array=array(4,5,1,2,3,1,2,1); $ac=array_count_value($array); 将创建一个名为

php中3种方法统计字符串中每种字符的个数并排序

复制代码 代码如下: <?php //这个方法纯粹是背函数,不解释: function countStr($str){ $str_array=str_split($str); $str_array=array_count_values($str_array); arsort($str_array); return $str_array; } //以下是例子: $str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas";

php计算数组不为空元素个数的方法

复制代码 代码如下: <?php $arr = array( 1=>"11", 2=>"22", 3=>"33", 4=>"" ); print_r(count(array_filter($arr))); ?>

PHP实现统计在线人数功能示例

本文实例讲述了PHP实现统计在线人数的方法.分享给大家供大家参考,具体如下: 我记得ASP里面统计在线人数用application 这个对象就可以了.PHP怎么设计? PHP对session对象的封装的很好,根据HTTP协议,每个范围网站的访客都可以生成一个唯一的标识符 echo session_id(); //6ed364143f076d136f404ed93c034201<br /> 这个就是统计在线人数的关键所在,只有有这个session_id 也就可以区分访问的人了.因为每一个人都不同

PHP统计二维数组元素个数的方法

解决思路1. 首先从数据库的congtent字段读取数据,并把它们合并成一个字符串. 复制代码 代码如下: <?php while($myrow = $connector -> fetch_array($result)) {  //$r[] = explode(",", $myrow["content"]);  $str .= $myrow["content"].','; } $arr_str = substr($str, 0, -1

php使用文本统计访问量的方法

本文实例讲述了php使用文本统计访问量的方法.分享给大家供大家参考,具体如下: 方法1: $fp = fopen("counter.txt", "r+"); while(!flock($fp, LOCK_EX)) { // acquire an exclusive lock // waiting to lock the file } $counter = intval(fread($fp, filesize("counter.txt"))); $

Python实现简单文本字符串处理的方法

本文实例讲述了Python实现简单文本字符串处理的方法.分享给大家供大家参考,具体如下: 对于一个文本字符串,可以使用Python的string.split()方法将其切割.下面看看实际运行效果. mySent = 'This book is the best book on python!' print mySent.split() 输出: ['This', 'book', 'is', 'the', 'best', 'book', 'on', 'python!'] 可以看到,切分的效果不错,但

Python使用循环神经网络解决文本分类问题的方法详解

本文实例讲述了Python使用循环神经网络解决文本分类问题的方法.分享给大家供大家参考,具体如下: 1.概念 1.1.循环神经网络 循环神经网络(Recurrent Neural Network, RNN)是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络. 卷积网络的输入只有输入数据X,而循环神经网络除了输入数据X之外,每一步的输出会作为下一步的输入,如此循环,并且每一次采用相同的激活函数和参数.在每次循环中,x0乘以系数U得到s0,再经过系数W输入

js实现文本框选中的方法

本文实例讲述了js实现文本框选中的方法.分享给大家供大家参考.具体如下: 这段javascript代码可解决文本框获得焦点,即使得文本框的内容被选中. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www

JavaScript实现点击单选按钮改变输入框中文本域内容的方法

本文实例讲述了JavaScript实现点击单选按钮改变输入框中文本域内容的方法.分享给大家供大家参考.具体如下: 这里实现点击单选按钮改变输入框中文本域内容的方法,是一个JavaScript 的简单应用,可以减少用户的输入,提升用户操作易用性,它类似一个TAB选项卡一样的功能,并可以完成后提交表单,值得学习. 运行效果截图如下: 具体代码如下: <html> <head> <title>JavaScript点击单选框改变输入框内容</title> </

php简单统计在线人数的方法

本文实例讲述了php简单统计在线人数的方法.分享给大家供大家参考,具体如下: <?php //首先你要有读写文件的权限 //本程序可以直接运行,第一次报错,以缶涂梢? $online_log = "count.dat"; //保存人数的文件, $timeout = 30;//30秒内没动作者,认为掉线 $entries = file($online_log); $temp = array(); for ($i=0;$i<count($entries);$i++) { $en

Python在Console下显示文本进度条的方法

进度条实现原理 进度条和一般的print区别在哪里呢? 答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果. 进度条不然,我们必须再原地输出才能保证他是一个进度条,否则换行了怎么还叫进度条? 实现进度条最简单的办法就是,在输出完毕后,把光标移动到行首,继续在那里输出更长的进度条即可实现,新的更长的进度条把旧的短覆盖,就形成了动画效果. 在用Python处理耗时的任务时,往往希望能够

MYSQL每隔10分钟进行分组统计的实现方法

前言 本文的内容主要是介绍了MYSQL每隔10分钟进行分组统计的实现方法,在画用户登录.操作情况在一天内的分布图时会非常有用,之前我只知道用「存储过程」实现的方法(虽然执行速度快,但真的是太不灵活了),后来学会了用高级点的「group by」方法来灵活实现类似功能. 正文: -- time_str '2016-11-20 04:31:11' -- date_str 20161120 select concat(left(date_format(time_str, '%y-%m-%d %h:%i'

js实现文本框中输入文字页面中div层同步获取文本框内容的方法

本文实例讲述了js实现文本框中输入文字页面中div层同步获取文本框内容的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.o