您的位置:首页 > 移动开发 > 微信开发

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

2015-11-08 17:04 876 查看
从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);


如此,我们便得到了关注用户的基本信息,就可以应用到后期的开发中。谢谢大家的阅读!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: