微信授权-获取微信授权后用户信息
微信授权登陆:
我采用的是自定义的子菜单:登陆微信公众平台
第一步:用户同意授权、获取code
第二步:通过code换取网页授权access_token
详细步骤参考微信公众号平台
在页面地址输入授权后的url:
eg:
scope为snsapi_userinfo
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
访问页面:
微信授权成功后,获取微信用户的基本信息
拉取用户的基本信息,只需要access_token、openid
请求url:
http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
获取用户信息的方法:
//获取用户的微信头像public static String getSnsapiUserinfo(String openId) throws Exception{logger.debug("getAccessToken,accessToken=" + accessToken);String url = "https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken+"&openid="+openId+"&lang=zh_CN";String webStr = HttpUtil.sendGetRequest(url, HttpUtil.CHARACTER_ENCODING);logger.debug("getSnsapiUserinfo,webStr=" + webStr);HashMap map = (HashMap) JSONUtil.deserialize(webStr);String headimgurl = (String) map.get("headimgurl");return headimgurl;}
发生get请求,获取返回的信息
/*** 发送get请求,获取返回html* * @param strUrl* 请求地址* @param encode* 页面编码* @return* @throws Exception*/public static String sendGetRequest(String strUrl, String encode) throws Exception {URL newUrl = new URL(strUrl);HttpURLConnection hConnect = (HttpURLConnection) newUrl.openConnection();InputStream is = hConnect.getInputStream();String str = inputStreamToString(is, encode);is.close();hConnect.disconnect();return str;}
获取accesstoken和openid
//获取企业号调用的临时tokenpublic static String getAccessToken() throws Exception {Date now = new Date();if (accessToken != null&& accessTokenGetTime != null&& now.getTime() - accessTokenGetTime.getTime() <= 1000 * 60 * 30) {return accessToken;} else {String webStr = HttpUtil.sendGetRequest(getTokenUrl(), HttpUtil.CHARACTER_ENCODING);logger.debug("getAccessToken,webStr=" + webStr);HashMap map = (HashMap) JSONUtil.deserialize(webStr);String token = (String) map.get("access_token");accessToken = token;accessTokenGetTime = now;return token;}}//通过微信code获取openidpublic static String getOpenId(String code) throws Exception {String webStr = HttpUtil.sendGetRequest(getTokenUrlfw(code), HttpUtil.CHARACTER_ENCODING);logger.debug("getAccessToken,webStr=" + webStr);HashMap map = (HashMap) JSONUtil.deserialize(webStr);String openid = (String) map.get("openid");accessToken=(String) map.get("access_token");return openid;}
微信授权-获取微信授权后用户信息相关推荐
- Java实现扫码微信登陆(获取登陆成功的用户信息 + 包含使用vue怎么显示登陆二维码)
实现于springboot中 依据b站视频写出的: 点击此处进行观看 然后记录于此处. 首先微信登陆的流程为: (可以去微信开发者平台看) 第一步:请求CODE 若提示"该链接无法访问&qu ...
- taobao.miniapp.eleuser.phone.get( 获取饿了么用户信息 )
¥开放平台免费API必须用户授权 获取饿了么用户信息 公共参数 请求地址: 公共请求参数: 公共响应参数: 响应参数 点击获取key和secret 请求示例 响应示例 异常示例
- 连小白都能看懂的微信开发之微信网页授权 + 获取微信用户信息
微信网页授权 所谓的微信网页授权说白了就是 用户微信客户端内访问第三方网页,公众号可以根据网页授权这个机制来获取用户的基本信息,然后进行相应的逻辑处理. 官方文档 : https://mp.weixi ...
- vue获取微信登陆权限_vue 授权获取微信openId操作
1.获取url中参数code: 根据code 获取openId:调用后台接口获取openId . function getUrlKey(name){//获取url 参数 return decodeUR ...
- 微信中获取微信用户信息的2种方式
微信中获取微信用户信息的2中方式 1, 在公众号底部菜单栏地址配置h5地址,如 http://test.dingdong.com/page1 然后前端在所有页面前拦截如login页面,查看是否有tok ...
- 使用uc_authcode 获取论坛当前登录用户信息
目的:使用uc_authcode 获取论坛当前登录用户信息 曲折:看了Discuz官方的ucenter二次开发手册,其中的Example如下: if(!empty($_COOKIE['Example_ ...
- 爬虫:利用cookie获取人人网登录后网页信息
爬虫:利用cookie获取人人网登录后网页信息 思路: 1.首先创建一个自动获取登录cookie的实例,创建请求管理器opener 2.分析网页源码,获取登录的form信息,并写入data,访问登录界 ...
- 从微信官方获取微信公众号名片:https://open.weixin.qq.com/qr/code?username=haihongruanjian...
从微信官方获取微信公众号名片: https://open.weixin.qq.com/qr/code?username=haihongruanjian (http://open.weixin.qq.c ...
- 从微信官方获取微信公众号二维码(名片)
从微信官方获取微信公众号二维码(名片) src="http://open.weixin.qq.com/qr/code?username=微信号" <img src=" ...
最新文章
- NFS企业级网络文件共享
- Inception GoogLeNet
- 从GBIP到PXI 的发展简史
- 狼的十大“处世哲学”~~(有关狼的图片)
- WSS3.0自带数据库可以使用SQL 2005 Server Management Studio来管理
- 给java程序员网址_程序员常用网址,必须收藏
- allegro导出坐标文件正反面_Orcad与Allegro交互
- 特斯拉在华第900座超级充电站落户深圳
- Java SpringBoot 页面渲染
- 概率论与数理统计(一)—— 联合概率、条件概率与边缘概率
- shell命令 ffmpeg 批量提取视频的音频文件
- 一元函数积分学2_不定积分的分部积分法
- labelme_json_to_dataset不能转换关键点的问题
- 将秒换成 小时,分钟,秒
- 02.javaWeb旅游网小项目【注册功能】
- java 探花交友项目day5 推荐好友列表 MongoDB集群 发布动态,查询动态 圈子功能
- 网络闪断导致oracle监听终止,一个由网络闪断导致的CICS交易网关异常的案例分享...
- 查看文件终端命令之cat命令和more命令详解 简单易懂
- history和head和less和tail的运用
- Sentinel初次使用Demo测试
热门文章
- js时间戳转换年月日
- python映射类型是什么意思_Python中字典映射类型的学习教程
- 折半查找--hnust oj
- java 读取excel模板_java如何读取excel表格的信息,java读取excel模板
- Chrome浏览器开启手机调试模式就断网解决
- 定时计数器c语言编程,定时计数器T0作定时应用技术(一)
- there is no source code available for the current location 解决方法
- 王者荣耀刷金币脚本,买英雄你还愁么?
- Python初级入门精讲-学习笔记
- 如何让Arduino IDE支持你手里的STM32 nucleo开发板