之前写过文章微信网页授权获取用户基本信息讲网页开发的时候,有时候需要获取用户的昵称头像等个人基本信息,获取用户的基本信息,可以通过网页授权,用户同意之后,获取到,如图所示:
前期准备:
获取到用户的openid,这个在上一篇文章讲过了,详见: 微信公众号获取用户的openid
话不多说,直接上代码:
//获取令牌
public function getAccessToken(){
//指定保存文件位置
if(!is_dir('./access_token/')){
mkdir(iconv("GBK","UTF-8",'./access_token/'),0777,true);
}
$file = './access_token/token';
if(file_exists($file)){
$content = file_get_contents($file);
$cont = json_decode($content);
if( (time()-filemtime($file)) < $cont->expires_in){ //当前时间-文件创建时间<token过期时间
return $cont->access_token;
}
}
$curl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this->appid.'&secret='.$this->appsecret;
$content = $this->_request($curl);
file_put_contents($file,$content);
$cont = json_decode($content);
return $cont->access_token;
}
/**
* 通过openid拉取用户信息
* @param string $openid [description]
* @return [type] [description]
*/
public function getUserInfo($openid=''){
if(!$openid) return false;
$access_token = $this->getAccessToken();
$urlStr = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s&lang=zh_CN';
$url = sprintf($urlStr,$access_token,$openid);
$result = json_decode($this->_request($url),true);
return $result;
}
就可以在用户不知不觉的时候,拿到如下信息: