ホームページ  >  記事  >  WeChat アプレット  >  WeChat上で公開された記事の情報収集を実現

WeChat上で公開された記事の情報収集を実現

XuPing.Yang
XuPing.Yangオリジナル
2022-02-12 13:13:153814ブラウズ

最近、お客様からこのような機能を実装したいとの要望がありました。記事情報をWeChat公開プラットフォームに公開した後、再度公式サイトにも公開する必要があり、同じ作業を二度行うことになるので実装したいとのことでした。 WeChatパブリックプラットフォームで記事を公開し、プラットフォームで記事を公開した後、同時に公式Webサイトにも公開することができます編集者は調査を通じて、WeChatパブリックプラットフォームの公式Webサイトが関連情報収集インターフェースを提供していることを発見しました。アドレスは次のとおりです: https://developers.weixin.qq.com/doc /offiaccount/Asset_Management/Get_materials_list.html

インターフェイス名は次のとおりです: Get Permanent Materials. 実際には、新しい素材記事を追加する場合、以下に示すように、公開後に保存された記事素材情報をクリックします。

WeChat上で公開された記事の情報収集を実現

をクリックすると、公開中の記事素材のみが収集されます。以下に示すように、[公開] ボタンを押して公開レコードに保存します -- 公開します。

WeChat上で公開された記事の情報収集を実現

エディターが以下で詳しく説明します。

インターフェイス:

http リクエスト メソッド:

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

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

注:

本番環境の前に、データ テーブルを追加する必要があります。 : 取得した access_token 値の有効期限が 7200 秒であるため、access_token 値の重複取得を避けるために、取得した access_token 値を保存するためにデータベース内の access_token が使用されます。

2 マテリアル リストの取得

access_token 値を取得した後、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);
}

その中には次のものがあります。

(1) type、素材の種類、画像、ビデオ、音声、ニュース

(2) offset、すべての素材からのオフセット 位置が戻り始めます、0 は元の位置から戻ることを意味します最初の資料

(3) カウント、返された資料の数、値は 1 ~ 20 です。

上記は、WeChat の取得に関する編集者の概要です。パブリック プラットフォームでは、記事の方法が公開されています。素材情報です 至らない点がありましたらご容赦ください マスターの皆様のお役に立てれば幸いです。

以上がWeChat上で公開された記事の情報収集を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。