>  기사  >  위챗 애플릿  >  WeChat에 게시된 기사의 정보 수집 실현

WeChat에 게시된 기사의 정보 수집 실현

XuPing.Yang
XuPing.Yang원래의
2022-02-12 13:13:153814검색

최근 고객은 이러한 기능을 WeChat 공개 플랫폼에 게시한 후 공식 웹사이트에도 다시 게시해야 했습니다. 이는 동일한 작업을 두 번 수행하는 것과 같습니다. 위챗 공개 플랫폼에서 기사가 동시에 공식 웹사이트에 게시될 수 있습니다. 편집자는 조사를 통해 위챗 공개 플랫폼의 공식 웹사이트에서 관련 정보 수집 인터페이스를 제공한다는 사실을 발견했습니다. https://developers.weixin.qq.com/doc/offiaccount/Asset_Management /Get_materials_list.html

인터페이스 이름은 영구 자료 가져오기입니다. 실제로 자료 기사를 추가할 때 저장된 기사 자료 정보를 클릭하세요. 게재 후 아래와 같이

WeChat에 게시된 기사의 정보 수집 실현

게시 버튼을 클릭해야만 게재 기록에 저장됩니다. - -아래와 같이 게재 중인 기사 자료만 수집할 수 있습니다.

WeChat에 게시된 기사의 정보 수집 실현

The 편집자가 아래에서 자세히 설명할 것입니다

인터페이스:

http 요청 방법:

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

1 Get 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 액세스를 저장합니다. 매번 얻은 access_token 값의 유효 기간이 7200초이므로 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) 유형, 재료 유형, 그림(이미지) , 비디오(동영상) ), 음성, 뉴스

(2) 오프셋, 모든 자료의 오프셋 위치에서 반환, 0은 첫 번째 자료에서 반환을 의미

(3) 개수, 자료 수 반환, 값 범위는 ~ 1~20

위는 WeChat 공개 플랫폼에 게시된 기사의 자료 정보를 얻기 위해 편집자가 요약한 방법입니다. 부족한 점이 있으면 양해해 주시기 바랍니다.

위 내용은 WeChat에 게시된 기사의 정보 수집 실현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.