이 글은 주로 PHP WeChat 개발에서 팬의 동기화를 소개합니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들은 이를 참조할 수 있습니다.
먼저 현재 공개 계정의 ID를 얻으세요
//获取正在使用的公众号 function getCurrentMp(){ $mp=M('mp')->where('is_use=1')->find(); return $mp; }
초기화
private $mp; public function _initialize(){ $mp=getCurrentMp(); if(empty($mp)){ $this->error('无使用的公众号',U('mp/index')); exit; }else{ $this->mp=$mp; } }
access_token 획득 방법
function getAccess_token(){ $mp=M('mp')->where('is_use=1')->find(); if(empty($mp)) return false; $id=$mp['id'];//正在使用的公众号的主键 if(empty($mp['access_token']) || $mp['expire_time']<time()){ $appid=$mp['appid']; $appsecret=$mp['appsecret']; $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret; include APP_PATH.'LaneWeChat/lanewechat.php'; $arr= \LaneWeChat\Core\Curl::callWebServer($url,'','GET'); //将获取到的access_token存入数据库 if(isset($arr['access_token'])){ $data['access_token']=$arr['access_token']; $data['expire_time']=$arr['expires_in'] + time()-200; M('mp')->where("id=$id")->save($data); return $arr['access_token']; }else{ return false; } }else{ return $mp['access_token']; } }
캡슐화된 프레임워크 호출
public static function getFansList($next_openid=''){ //获取ACCESS_TOKEN $accessToken = getAccess_token(); if(empty($next_openid)){ $queryUrl = 'https://api.weixin.qq.com/cgi-bin/user/get?access_token='.$accessToken; }else{ $queryUrl = 'https://api.weixin.qq.com/cgi-bin/user/get?access_token='.$accessToken.'&next_openid='.$next_openid; } return Curl::callWebServer($queryUrl, '', 'GET'); }
//批量获取基本信息 public function getManyUserInfo($openids){ $accessToken = getAccess_token(); $queryUrl = 'https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token='.$accessToken; $json=json_encode(array('user_list'=>$openids)); return Curl::callWebServer($queryUrl, $json, 'POST'); }
준비 후 동기화 시작
public function downFans(){ $mp=$this->mp; $mp_id = $mp['id']; include APP_PATH.'LaneWeChat/lanewechat.php'; $ret=UserManage::getFansList(); // print_r($ret); $openids=$ret['data']['openid']; // print_r($openids); $arr=array(); foreach ($openids as $value) { $row=array(); $row['openid']=$value; $row['lang']="zh_CN"; $arr[]=$row; } // print_r($arr); // exit; $ret=UserManage::getManyUserInfo($arr); // print_r($ret); // exit; if(isset($ret['user_info_list'])){ $data=$ret['user_info_list']; // print_r($data); // exit; $mp=$this->mp; // $data['mp_id']= $mp_id; $fan=M('mp_friends'); $fan->where("mp_id={$mp['id']}")->delete(); foreach ($data as &$value) { $value['mp_id']=$mp['id']; $value['tagid_list']=implode(',', $value['tagid_list']); } $fan->addAll($data); } $this->success('同步完成',U('index')); }
관련 추천 :
위 내용은 PHP WeChat 개발 동기화 팬의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!