Home  >  Article  >  Backend Development  >  Detailed explanation of usage examples of WeChat data statistics interface in PHP version

Detailed explanation of usage examples of WeChat data statistics interface in PHP version

怪我咯
怪我咯Original
2017-07-04 13:16:221747browse

This article mainly introduces the usage of the PHP version of the 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 following

The examples in this article describe How to use the PHP version of WeChat data statistics interface. I share it with you for your reference. The details are as follows:

The php version of the WeChat data 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 take a look at a php version. Example of WeChat data statistics interface:

WeChat released a new data analysis interface portal on January 6:

Please note :

1. The public account data database on the interface side only stores data after December 1, 2014, and the query will not be able to date before that. Even if it is found, it is untrustworthy dirty data;

2. Developers are asked to save the data in their own database after calling the interface to obtain the data, which will speed up the next user's access and also reduce the cost. Unnecessary loss of 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 the internal testing stage, but because it is a new interface, it needs to be improved. The class of WeChat advanced interface 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, it is the same as the previous JSON, but datacube must be added to the judgment. Judgment (Note: Comment has been 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: It is the 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);
}

The running result is that although the API is not authorized (after all, the qualified partners of the internal test have the information, just wait for the public account):

Postscript, I will do a Linux task later. The background itself checks every period of time (a week or 30 days) because some data statistics interfaces are 7 days and some are 30 days. In this way, the data is obtained and then written into the database table to generate graphic reports, saving you the time of logging some statistics that the official has already logged for you!

The above is the detailed content of Detailed explanation of usage examples 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