Maison  >  Article  >  développement back-end  >  Exemple d'utilisation de l'interface de statistiques de données WeChat en version PHP

Exemple d'utilisation de l'interface de statistiques de données WeChat en version PHP

墨辰丷
墨辰丷original
2018-06-01 09:52:561276parcourir

Cet article présente principalement l'utilisation de la version PHP de l'interface de statistiques de données WeChat et analyse les fonctions de l'interface de statistiques de données PHP WeChat et les compétences d'utilisation associées sous forme d'exemples. Les amis dans le besoin peuvent se référer à

<.>Version PHP des données WeChat L'interface de statistiques est en fait très simple à utiliser. Cette fonction n'était pas disponible dans la version précédente mais a été ajoutée dans les versions ultérieures. Regardons un exemple de la version PHP de l'interface de statistiques de données WeChat :


WeChat en janvier Un nouveau portail d'interface d'analyse de données a été lancé le 6 :

Attention :

1. Compte public côté interface La base de données ne stocke les données qu'après le 1er décembre 2014. Les dates antérieures ne seront pas interrogées Même si elles sont trouvées, ce sont des données sales non fiables ; . Les développeurs sont invités Après avoir appelé l'interface pour obtenir des données, les données sont enregistrées dans sa propre base de données, ce qui accélère l'accès de l'utilisateur suivant et réduit les pertes inutiles dans les appels d'interface côté WeChat.

L'interface de données d'analyse utilisateur fait référence à l'interface utilisée pour obtenir les données d'analyse des utilisateurs dans le module de statistiques de données du site officiel de la plateforme publique. La liste des interfaces spécifiques est la suivante (il n'y a pas encore d'interface de données d'attribut utilisateur. ):

Durée maximale La durée fait référence à la plage de temps maximale pendant laquelle des données peuvent être obtenues lors d'un appel d'interface. Par exemple, la durée maximale est de 7, ce qui signifie que jusqu'à 7 jours de données peuvent être obtenues. une fois. Veuillez obtenir la valeur réelle de access_token via "Get access_token".

Description de la demande d'appel d'interface

L'interface de données d'analyse utilisateur (y compris toutes les interfaces de la liste d'interfaces) doit POST l'exemple de paquet de données suivant à l'adresse d'appel d'interface correspondante :

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

Instructions pour appeler les paramètres :

Après un rapide regardez, c'est toujours en phase de test interne, mais comme il s'agit d'une nouvelle interface, nous devons améliorer les classes d'interface avancées WeChat utilisées par ce site. Modifier comme suit :

Ajouter de nouvelles constantes d'interface à la classe :

API_DATA_CUBE_URL = &#39;https://api.weixin.qq.com/datacube&#39;,
API_TYPE_DATA = &#39;datacube&#39;
Modifier la méthode d'appel : car elle nécessite que l'URL le paramètre est uniquement le jeton d'accès C'est donc la même chose que le JSON précédent, mais le jugement du datacube doit être ajouté au jugement (note : les commentaires ont déjà expliqué) :

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.&#39;?access_token=&#39;.$this->_access_token;
      } else {
        $params[&#39;access_token&#39;] = $this->_access_token;
      }
      $res = $this->request($url, $params, $type);
      if ($res) {
        return $res;
      }
    }
    return false;
}
Enfin appeler le document en mode CLI Débogage d'une des interfaces getinterfacesummary (note : méthode POST à ​​l'interface) :

if (isset($argc) && $argc >= 1 && $argv[0] == __FILE__) {
  $client = new WechatJSON(array(
    WechatJSON::APP_ID => &#39;wx78sfsd023744d51&#39;,
    WechatJSON::APP_SECRET => &#39;9ba3476db1fsfsff512esf2f630fb9&#39;,
  ));
  $res = $client->call(&#39;/getinterfacesummary&#39;, array(
    &#39;begin_date&#39; => &#39;2014-12-01&#39;,
    &#39;end_date&#39; => &#39;2014-12-31&#39;
  ), WechatJSON::POST, WechatJSON::API_TYPE_DATA);
  if (!$res) {
    var_dump($client->_error);
  }
  var_dump($res);
}
Le résultat courant est que même si l'API n'est pas autorisée (après tout, elle est toujours destinée aux tests internes) Les partenaires conditionnels ont des informations, les comptes publics peuvent attendre) :

Post-scriptum, à l'avenir, je ferai un Tâche Linux pour laisser l'arrière-plan lui-même s'exécuter de temps en temps (une semaine ou 30 jours) car certaines interfaces de statistiques de données durent 7 jours. Certaines durent 30 jours. De cette façon, les données sont récupérées puis écrites dans la table de la base de données pour générer des rapports graphiques, vous évitant ainsi d'avoir à enregistrer certaines statistiques que le responsable a déjà enregistrées pour vous !

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

php

Méthode d'encapsulation de la classe MySQL basée sur le mode singleton
thinkPHP Méthodes d'exécution de transactions dans le framework


PHP+MySQL utilise mysql_num_rows pour implémenter la fonction d'informations du livre de requêtes floues


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn