Maison  >  Article  >  Applet WeChat  >  Réaliser une collecte d'informations sur les articles publiés sur WeChat

Réaliser une collecte d'informations sur les articles publiés sur WeChat

XuPing.Yang
XuPing.Yangoriginal
2022-02-12 13:13:153789parcourir

Récemment, un client a dû implémenter une telle fonction. Après avoir publié des informations sur l'article sur la plateforme publique WeChat, il a également dû les publier à nouveau sur le site officiel. Cela équivalait à faire le même travail deux fois. la plateforme publique WeChat. Après l'article, il peut être publié sur le site officiel en même temps. Grâce à des recherches, l'éditeur a découvert que le site officiel de la plateforme publique WeChat fournit une interface de collecte d'informations pertinente. https://developers.weixin.qq.com/doc/offiaccount/Asset_Management /Get_materials_list.html

Le nom de l'interface est : Obtenir des matériaux permanents En fait, lors de l'ajout d'un article matériel, cliquez sur les informations matérielles de l'article enregistrées après. publication, comme indiqué ci-dessous :

Réaliser une collecte dinformations sur les articles publiés sur WeChat

Seulement lorsque vous cliquez sur le bouton de publication, il sera enregistré dans le dossier de publication - -Seuls les éléments de l'article en cours de publication peuvent être collectés, comme indiqué ci-dessous :

Réaliser une collecte dinformations sur les articles publiés sur WeChat

L'éditeur expliquera en détail ci-dessous

Interface :

Méthode de requête http :

POST https://api .weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN

1 Obtenez ACCESS_TOKEN

public function getAccessToken(){
    $info = Db::name('access_token')->order('inputtime desc')->find();
    if($info){
        $time = time();
        $long_time = $time - $info['updatetime'];
        if($long_time>=$info['expires_in']){
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->secret;
            $res = $this->getJson($url);
            if(in_array('access_token',$this->DbSy->GetArrElement($res))){
                $insert['access_token'] = $res['access_token'];
                $insert['expires_in'] = $res['expires_in'];
                $insert['updatetime'] = time();
                $up_info = Db::name('access_token')->where('id',$info['id'])->update($insert);
                if(!$up_info){
                    return json(['code'=>103,'msg'=>'AccessToken更新失败']);
                }
                $AccessToken = $res['access_token'];
            }else{
                return json(['code'=>100,'msg'=>'AccessToken获取失败']);
            }
        }else{
            $AccessToken = $info['access_token'];
        }
    }else{
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->secret;
        $res = $this->getJson($url);
        if(in_array('access_token',$this->DbSy->GetArrElement($res))){
            $insert['access_token'] = $res['access_token'];
            $insert['expires_in'] = $res['expires_in'];
            $insert['updatetime'] = time();
            $insert['inputtime'] = time();
            $up_info = Db::name('access_token')->where('id',$info['id'])->insertGetId($insert);
            if($up_info){
                $AccessToken = $res['access_token'];
            }else{
                return json(['code'=>101,'msg'=>'AccessToken插入失败']);
            }

        }else{
            return json(['code'=>100,'msg'=>'AccessToken获取失败']);
        }
    }
    return $AccessToken;
}

Remarque :

Vous devez ajouter une table de données à la base de données avant la production : access_token pour stocker l'accès La valeur access_token est obtenue car la période de validité de la valeur access_token obtenue à chaque fois est de 7200s, afin d'éviter d'obtenir la valeur access_token à plusieurs reprises.

2 Obtenez la liste du matériel

Après avoir obtenu la valeur access_token, vous pouvez obtenir la liste du matériel via la valeur access_token :

public function getArticleList($offset,$type='news',$length=20){
    $data = array(
        'type'=>$type,
        'offset'=>$offset,
        'count'=>$length
    );
    $json_data = json_encode($data);
    $AccessToken = $this->getAccessToken();
    $url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=".$AccessToken;
    $res = $this->getJsonData($url,$json_data);
    return $res;
    //dump($res);
}

Parmi eux :

(1) type, le type de matériel, image (image) , vidéo (vidéo) ), voix, actualités

(2) décalage, retour de la position décalée de tous les matériaux, 0 signifie retour du premier matériau

(3) comptage, renvoie le nombre de matériaux, La valeur varie de 1 à 20

Ce qui précède est la méthode résumée par l'éditeur pour obtenir les informations matérielles des articles publiés sur la plateforme publique WeChat. Veuillez me pardonner s'il y a des lacunes, j'espère que cela pourra être utile à tout le monde.

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