Heim >WeChat-Applet >WeChat-Entwicklung >Verwirklichen Sie die Informationssammlung der auf WeChat veröffentlichten Artikel

Verwirklichen Sie die Informationssammlung der auf WeChat veröffentlichten Artikel

XuPing.Yang
XuPing.YangOriginal
2022-02-12 13:13:153859Durchsuche

Kürzlich musste ein Kunde eine solche Funktion implementieren, nachdem er Artikelinformationen auf der offiziellen Website veröffentlicht hatte. Dies kam einer zweimaligen Veröffentlichung gleich Nach der Veröffentlichung des Artikels auf der offiziellen Website hat der Herausgeber herausgefunden, dass die offizielle Website der öffentlichen Plattform WeChat wie folgt lautet: https://developers.weixin.qq.com/doc/offiaccount/Asset_Management /Get_materials_list.html

Der Name der Schnittstelle lautet: Permanente Materialien abrufen. Wenn Sie einen Materialartikel hinzufügen, klicken Sie auf die danach gespeicherten Artikelmaterialinformationen Veröffentlichung, wie unten gezeigt:

Verwirklichen Sie die Informationssammlung der auf WeChat veröffentlichten Artikel

Nur wenn Sie auf die Schaltfläche „Veröffentlichen“ klicken, wird es im Veröffentlichungsdatensatz gespeichert. - -Es können nur die veröffentlichten Artikelmaterialien gesammelt werden, wie unten gezeigt:

Verwirklichen Sie die Informationssammlung der auf WeChat veröffentlichten Artikel

Der Herausgeber werde es unten im Detail erklären

Schnittstelle:

http-Anfragemethode:

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

1 Holen Sie sich 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;
}

Hinweis:

Sie müssen vor der Produktion eine Datentabelle zur Datenbank hinzufügen: access_token, um den Zugriff zu speichern. Der access_token-Wert wird erhalten, weil die Gültigkeitsdauer des jedes Mal erhaltenen access_token-Werts 7200 Sekunden beträgt. um zu vermeiden, dass der access_token-Wert wiederholt abgerufen wird.

2 Materialliste abrufen

Nachdem Sie den access_token-Wert erhalten haben, können Sie die Materialliste über den access_token-Wert abrufen:

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

Darunter:

(1) Typ, Materialtyp, Bild (Bild) , Video (Video) ), Stimme, Nachrichten

(2) Offset, Rückkehr von der Versatzposition aller Materialien, 0 bedeutet Rückkehr vom ersten Material

(3) Anzahl, Rückgabe der Anzahl der Materialien, Der Wert reicht von 1 bis 20

Das Obige ist die vom Herausgeber zusammengefasste Methode, um die wesentlichen Informationen zu Artikeln zu erhalten, die auf der öffentlichen WeChat-Plattform veröffentlicht wurden. Bitte verzeihen Sie mir, wenn es irgendwelche Mängel gibt.

Das obige ist der detaillierte Inhalt vonVerwirklichen Sie die Informationssammlung der auf WeChat veröffentlichten Artikel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn