公众号如何取用户图像和用户名

公众号如何取用户图像和用户名条件:已申请了公众号和服务器.在服务器XXXX.com/wx/下加入:wx_public.jsp,内容如下:<%@page import=

欢迎大家来到IT世界,在知识的湖畔探索吧!

先看结果:

公众号如何取用户图像和用户名

.

1.条件:已申请了公众号和服务器.

2.在微信中打开下列链接:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxXXXXXXXX&redirect_uri=http://xxxxxx.com/app/wx/wx_godazzpublic.jsp&response_type=code&scope=snsapi_base&state=123#wechat_redirect

3.用jsp直接了解结果.

在服务器XXXX.com/wx/下加入:wx_public.jsp,内容如下:

<%@page import=”cn.hutool.http.HttpUtil”%>

<%@page import=”cn.hutool.core.util.StrUtil”%>

<%@page import=”cn.hutool.json.*”%>

<%@page import=”java.io.*”%>

<%@ page language=”java” contentType=”text/html; charset=UTF-8″ pageEncoding=”UTF-8″%>

<!DOCTYPE html>

<html xmlns=”http://www.w3.org/1999/xhtml”>

<head><meta http-equiv=”Content-Type” content=”text/html; charset=UTF8″ />

<meta charset=”UTF8″ />

<meta name=”viewport” content=”width=device-width” /><title>

公众号–是否关注

</title>

<link rel=”SHORTCUT ICON” href=”/images/ico.png” />

</head>

<body oncontextmenu=”return false”>

<script src=”http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js”></script>

<%

String app_id=”wxXXXXXXXXXXXXXX”;

String app_secret=”6cafXXXXXXXXXXXXXXXXX”;

//String state=request.getParameter(“state”);

//out.println(“mid======”+state);

//1——————获取扫描二维码返回的 授权临时票据 code

String code = request.getParameter(“code”);

//out.println(“<br><br>授权临时票据 code:”+code);

//2——————通过 app_id, app_secret 和 code 获取接口调用凭证 access_token 和 授权用户唯一标识 openid

String getAccessTokenURLFormat = “https://api.weixin.qq.com/sns/oauth2/access_token?appid={}&secret={}&code={}&grant_type=authorization_code”;

String getAccessTokenURL = StrUtil.format(getAccessTokenURLFormat, app_id,app_secret,code);

//out.println(“getAccessTokenURL===”+getAccessTokenURL);

//通过 hutool 工具类 访问url

String tokenResponse = HttpUtil.get(getAccessTokenURL);

//通过 hutool 工具类 转换为 json 对象

JSONObject tokenJson= JSONUtil.parseObj(tokenResponse);

//out.println(“tokenJson===”+tokenJson);

//获取json 对象相关字段

Integer errcode = (Integer)tokenJson.get(“errcode”);

String errmsg = (String)tokenJson.get(“errmsg”);

String openid = (String)tokenJson.get(“openid”);

String session_access_token = (String)tokenJson.get(“access_token”);

//先判断是否返回错误信息,如果是,则提示错误

if(null!=errcode){

out.println(“<br><br>出错,错误信息:”+errmsg);

return;

}

out.println(“<br><br><span style=’color:green’>登录成功!</span>”);

//打印 服务端返回的数据

out.println(“<br><br>授权临时票据 code:”+code);

out.println(“<br><br> 接口调用凭证 access_token:”+session_access_token);

out.println(“<br><br> 授权用户唯一标识 (这个可以与数据库里已经存在的用户数据进行关联) openid:”+openid);

String sbase_token=”https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=”+app_id+”&secret=”+app_secret;

//通过hutool 工具类获取用户信息

String base_tokenResponse = HttpUtil.get(sbase_token);

//通过 hutool 工具类转换为 json 对象

JSONObject base_tokenJson= JSONUtil.parseObj(base_tokenResponse);

out.println(“<br><br>base_tokenJson===”+base_tokenJson);

//3—————————–通过 接口调用凭证 access_token 和 授权用户唯一标识 openid 就可以获取用户信息了

String web_access_token = (String)base_tokenJson.get(“access_token”);

out.println(“<br><br>web_access_token===”+web_access_token);

String surl=”https://api.weixin.qq.com/cgi-bin/user/info?access_token=”+web_access_token+”&openid=”+openid+”&lang=zh_CN”;

//String surl = “https://api.weixin.qq.com/sns/userinfo?access_token=”+web_access_token+”&openid=”+openid+”&lang=zh_CN”;

out.println(“<br><br> surl:”+surl);

//1.

//String getUserInfoURLFormat = “https://api.weixin.qq.com/sns/userinfo?access_token={}&openid={}”;

//String getUserInfoURL = StrUtil.format(getUserInfoURLFormat,access_token,openid);

//2.

String getUserInfoURL=surl;

//通过hutool 工具类获取用户信息

String userInfoResponse = HttpUtil.get(getUserInfoURL);

//通过 hutool 工具类转换为 json 对象

JSONObject userInfoJson= JSONUtil.parseObj(userInfoResponse);

out.println(“<br><br>userInfoJson===”+userInfoJson);

//通过 hutool 工具获取微信昵称和头像图片地址

//String subscribe = (String)userInfoJson.get(“subscribe”);

int subscribe= userInfoJson.getInt(“subscribe”);

String nickname = (String)userInfoJson.get(“nickname”);

String headimgurl = (String)userInfoJson.get(“headimgurl”);

out.println(“<br><br>subscribe:”+subscribe);

out.println(“<br><br>微信名称:”+nickname);

out.println(“<br><br>微信头像:<img src='”+headimgurl+”‘/>”);

%>

</body>

</html>

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22108.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信