php获取微信公众号用户信息头像,微信公众号的web页面如何获取微信用户名和头像?...
首先,你的網站入口必須是微信服務號(開通認證、擁有獲取用戶openid權限;訂閱號是不行的)。
方法:網頁通過微信的Oauth2認證鏈接。(必須是微信的內置瀏覽器,通過微信服務號進入)
操作:通過服務號菜單鏈接進入網站,如:?https://open.weixin.qq.com/connect/oauth2/authorize?appid=YOURAPPID&redirect_uri=http://YOUWEBSITE/oauth2.php&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
自己根據微信提供的oauth2接口文檔,編寫oauth2.php內容,(網上有相關官方SDK)
步驟如下:
1. 微信的oauth重定向回來有一個$_GET['code']參數,通過code來獲取用戶openid
2. 通過OpenID獲取access_token
3. 通過access_token獲取用戶信息
4. 授權注冊用戶,若已存在該用戶則直接進入網站
貼一段oauth2.php的示例代碼:
//http://www.drupal001.net/oauth2.php
$appid?=?"公眾號在微信的appid";
$secret?=?"公眾號在微信的app?secret";
$code?=?$_GET["code"];
$get_token_url?=?'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
$ch?=?curl_init();
curl_setopt($ch,CURLOPT_URL,$get_token_url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1?);
curl_setopt($ch,?CURLOPT_CONNECTTIMEOUT,?10);
$res?=?curl_exec($ch);
curl_close($ch);
$json_obj?=?json_decode($res,true);
//根據openid和access_token查詢用戶信息
$access_token?=?$json_obj['access_token'];
$openid?=?$json_obj['openid'];
$get_user_info_url?=?'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
$ch?=?curl_init();
curl_setopt($ch,CURLOPT_URL,$get_user_info_url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1?);
curl_setopt($ch,?CURLOPT_CONNECTTIMEOUT,?10);
$res?=?curl_exec($ch);
curl_close($ch);
//解析json
$user_obj?=?json_decode($res,true);
$_SESSION['user']?=?$user_obj;
print_r($user_obj);
?>
最后提醒一下,你的公眾號回調網站域名必須在微信公眾號平臺配置一下,否則會報錯,參考下圖:
總結
以上是生活随笔為你收集整理的php获取微信公众号用户信息头像,微信公众号的web页面如何获取微信用户名和头像?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DTX浅析
- 下一篇: 年薪10万的人,都是怎么努力的?