[004]微信公众账号开发教程第1篇-根据用户openID获取用户基本信息

来源:互联网 发布:本机端口号查询 编辑:程序博客网 时间:2024/05/14 21:15

    从2014年春晚抢红包开始,微信红包红遍了大江南北,微信的各种应用也成为了人们茶余饭间的甜点,自然各大互联网公司正在如火如荼的抓住这个商机,进行微信第三方应用开发,小编作为其中的一员,把自己的一点心得分享给大家。

    做微信开发,第一步当然是从微信官方的参考文档入手,因为那是最正确的参考物, 微信官方参考文档。

    首先科普一下基本知识:

    access token:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。(引自微信官方文档)。

    所以要想使用微信的接口,先要获得access token,获得access token的方法有多种,下面列出2种:

    1)首先进入微信公众平台,开发者中心—>在线接口调试工具—>接着如下图所示填入相应信息,即可获得access token


    2)作为程序员,方便后期开发,当然要用程序得到我们想要的,本人是做Java开发的,所以以下列出Java部分程序

    请求URL如下所示,给微信服务器发请求,会返回相应的字符串

//获取accessToken链接String urlStr1 = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appID+"&secret="+secret+"";//获取accessTokenString accessTokenStr = sendUrlRequest1(urlStr1);JSONObject json = new JSONObject(accessTokenStr);String accessToken = json.getString("access_token");

    发送请求的函数如下,返回微信发送的的响应

/** * 根据URL路径,获取服务器返回的字符串 */public static String sendUrlRequest1(String urlStr)throws Exception{HttpURLConnection url_con=null;String tempStr = null;try{URL url=new URL(urlStr);StringBuffer bankXmlBuffer=new StringBuffer();//创建URL连接,提交到数据,获取返回结果HttpURLConnection connection=(HttpURLConnection)url.openConnection();connection.setRequestMethod("GET");connection.setDoOutput(true);connection.setRequestProperty("User-Agent","directclient");PrintWriter out=new PrintWriter(new OutputStreamWriter(connection.getOutputStream(),"GBK"));out.println();out.close();BufferedReader in=new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));String inputLine;while((inputLine = in.readLine())!=null){bankXmlBuffer.append(inputLine);}in.close();tempStr = bankXmlBuffer.toString();}catch(Exception e){System.out.println("发送GET请求出现异常!"+e);e.printStackTrace();}finally{if(url_con!=null)url_con.disconnect();}return tempStr;}

   有了access token,便可在微信官方平台获得关注用户的openid,openid是每位关注用户的唯一标识,继续使用调试工具


    有个openid即可获得用户的基本信息,程序如下:

    请求链接如下:(sendUrlrequest1函数上面已经列出)

String urlStr2 = "https://api.weixin.qq.com/cgi-bin/user/info?access_token="+accessToken+"&openid="+openID+"";String result2 = sendUrlRequest1(urlStr2);//System.out.println(result2);JSONObject json2 = new JSONObject(result2);if (!json2.has("nickname")){return null;}String nickName = json2.getString("nickname");//通过openID及上面获得的accessToken获取用户的基本信息System.out.println("nickName:" + nickName + ",openID:" + openID);

    如此,我们便得到了关注用户的基本信息,就可以应用到后期的开发中。谢谢大家的阅读!

0 0
原创粉丝点击