尝试实现以下流程:点击微信菜单,在微信浏览器中打开网页进行编辑操作,并以微信中的用户信息编辑上传内容。
参考微信的OAuth2.0网页授权流程:https://mp.weixin.qq.com/wiki。
首先进行网页授权,进入微信平台,“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。
第一步:用户同意授权,获取code
在网站根目录建立oauth2.php文件:
<?php
if (isset($_GET['code'])){
echo $_GET['code'];
}else{
echo "NO CODE";
}
?>
在微信中构造并打开以下连接,appid***替换为自己的appid,url***替换为自己的域名:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid***&redirect_uri=http://url***/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect
打开以上连接后,得到code:
第二步:通过code换取网页授权access_token
第一步成功取得code后,构造以下连接,其中,红色部分需要替换为自己的对应值:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid***&secret=secret***&code=code***&grant_type=authorization_code
这连接直接在pc浏览器中打开,得到以下结果:
{
"access_token":"UotmqEAKaimK3BKz_d5Hx1Fwygj26Djq9gA6q0fgSw3r9OFJBaxZ1znjipDxEbFf9r7OMDg05IW***",
"expires_in":7200,
"refresh_token":"owILj4XC9GJ0-Lt8RHG5K-T05CjjoFDPWSV_WGbOv03KYWymL6xWN7kkRZenaFUqvhmJhxgvd6epTFjhWJflV***",
"openid":"olXyUwaWwouEo3_UrJpCQ8***",
"scope":"snsapi_userinfo"
}
第三步:刷新access_token(如果需要)
替换以下连接中的红色部分,在pc浏览器中打开:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=appid***&grant_type=refresh_token&refresh_token=refresh_token***
得到以下内容:
{
"openid":"olXyUwaWwouEo3_U***",
"access_token":"UotmqEAKaimK3BKz_d5Hx1Fwygj26Djq9gA6q0fgSw3r9OFJBaxZ1znjipDxEbFf9r7***",
"expires_in":7200,
"refresh_token":"owILj4XC9GJ0-Lt8RHG5K-T05CjjoFDPWSV_WGbOv03KYWymL6x***",
"scope":"snsapi_base,jsapi_record,jsapi_location,snsapi_userinfo,"
}
第四步:拉取用户信息(需scope为 snsapi_userinfo)
根据上面得到的access_token以及openid,替换以下连接中的红色部分,在pc浏览器中打开:
https://api.weixin.qq.com/sns/userinfo?access_token=access_token***&openid=openid***
返回以下结果:
{
"openid":"olXyUwaW***",
"nickname":"***",
"sex":*,
"language":"zh_CN",
"city":"",
"province":"",
"country":"CN",
"headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/SXSQqYR286eWx***",
"privilege":[]
}