PHP微信开发之同步粉丝

企鹅博客
企鹅博客
企鹅博客
29446
文章
0
评论
2020年9月13日09:18:32 评论 5 views 2474字阅读8分14秒

这篇文章主要介绍了PHP微信开发之同步粉丝 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

首先获取到当前公众号的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微信开发之模板消息回复

以上就是PHP微信开发之同步粉丝 的详细内容,更多请关注php教程网其它相关文章!

继续阅读
weinxin
欢迎加入中国站长博客之家
本站的所有资源都会上传分享到博客之家,希望大家互相学习交流进步。
使用PHP实现汉字拼音转换和公历农历转换 php教程

使用PHP实现汉字拼音转换和公历农历转换

这篇文章主要介绍了PHP实现的汉字拼音转换和公历农历转换类及使用示例,精心整理自网上的资源,需要的朋友可以参考下 本文整理了PHP汉字拼音转换和公历农历转换两个功能类文件,非常实用。比如我们查找通讯录...
阿里云中安装Apache和PHP环境 php教程

阿里云中安装Apache和PHP环境

这次给大家带来阿里云中安装Apache和PHP环境,阿里云中安装Apache和PHP环境的注意事项有哪些,下面就是实战案例,一起来看一下。 一、说明:项目需要在阿里云的WindowsServer201...
HTML元介绍六 - tr html教程

HTML元介绍六 – tr

定义指定表格中的一行。Specifies a row in a table 注释TD 和 TH 元素可以在行中出现。要更改 TR 元素中的 HTML,请使用表格对象模型。例如,使用 rowIndex ...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: