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

    从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+"";
//获取accessToken
String 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);

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


版权声明:本文为yuanzhihuipengyou原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。