Home  >  Article  >  Backend Development  >  Usage example of WeChat data statistics interface in PHP version

Usage example of WeChat data statistics interface in PHP version

墨辰丷
墨辰丷Original
2018-06-01 09:52:561278browse

This article mainly introduces the usage of the PHP version of WeChat data statistics interface, and analyzes the functions of the PHP WeChat data statistics interface and related usage skills in the form of examples. Friends in need can refer to the

php version of WeChat data The statistics interface is actually very easy to use. This function was not available in the previous version but was added in later versions. Let’s look at an example of the PHP version of the WeChat data statistics interface:

WeChat in January A new data analysis interface portal was released on the 6th:

Please note:

1. The public account on the interface side The data database only stores data after December 1, 2014. Dates before this will not be queried. Even if it is found, it is untrustworthy dirty data;

2. Developers please After calling the interface to obtain data, the data is stored in its own database, which speeds up the next user's access and reduces unnecessary losses in WeChat-side interface calls.

The user analysis data interface refers to the interface used to obtain user analysis data in the data statistics module of the official website of the public platform. The specific interface list is as follows (there is no user attribute data interface yet):

Maximum time The span refers to the maximum time range that can obtain data during an interface call. For example, the maximum time span is 7, which means that up to 7 days of data can be obtained at one time. Please obtain the actual value of access_token through "Get access_token".

Interface call request description

The user analysis data interface (including all interfaces in the interface list) needs to POST the following sample data packet to the corresponding interface call address:

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

Instructions for calling parameters:

After a rough look, it is still in internal testing for the time being. stage, but because it is a new interface, we need to improve the WeChat advanced interface class used by this site. Modify as follows:

Add new interface constants to the class:

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

Modify the call method: Because it requires that the URL parameter is only the access token, follow It’s the same as JSON before, but you need to add the datacube judgment to the judgment (note: the comment has already explained):

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;
}

Finally, the CLI method calls a getinterfacesummary interface in the document Debugging (note: POST method to the interface):

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);
}

Running results, although the API is not authorized (after all, the qualified partners of internal testing have information , just wait for those with public accounts):

Postscript, in the future, I will make a Linux task to let the background itself run every once in a while (a week or 30 days) because some data statistics interfaces are 7 days, and some are 30 days. In this way, the data is fetched and then written into the database table to generate graphic reports, saving you the trouble of logging some statistics that the official has already logged for you!

Summary: The above is the entire content of this article, I hope it will be helpful to everyone's study.

Related recommendations:

phpMethod of encapsulating mysql class based on singleton mode

##thinkPHP Methods for executing transactions in the framework

PHP MySQL uses mysql_num_rows to implement fuzzy query book information function

The above is the detailed content of Usage example of WeChat data statistics interface in PHP version. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn