微信(WeChat)是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,由张小龙所带领的腾讯广州研发中心产品团队打造 [2] 。微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费(需消耗少量网络流量)语音短信、视频、图片和文字,同时,也可以使用通过共享流媒体内容的资料和基于位置的社交插件“摇一摇”、“漂流瓶”、“朋友圈”、”公众平台“、”语音记事本“等服务插件。
本文主要和大家分享微信网页获取用户基本信息的方法,之前写过文章
微信网页授权获取用户基本信息讲网页开发的时候,有时候需要获取用户的昵称头像等个人基本信息,获取用户的基本信息,可以通过网页授权,用户同意之后,获取到,如图所示:
但是,这样就多了一个步骤,有的用户可能看到多一个步骤,就随手点击回退,就这么失掉了一个宝贵的用户,很是遗憾,那么今天我们就使用另一种方式来获取用户信息,就是通过OpenID来获取用户基本信息。这种方式可就简单多了,在用户不知不觉的情况下,我们就拿到了他的个人信息,而且这样获取的信息比授权获取的还要多,比如这样还可以知道该用户是否关注以及关注时间。
前期准备:
获取到用户的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;
}
微信提供公众平台、朋友圈、消息推送等功能,用户可以通过“摇一摇”、“搜索号码”、“附近的人”、扫二维码方式添加好友和关注公众平台,同时微信将内容分享给好友以及将用户看到的精彩内容分享到微信朋友圈。