微信接口调用 ---ACCESS_TOKEN
开始尝试一点点微信企业号的开发,目前的要求的开发的第三方软件可以直接通过微信扫码直接登录。
尝试第一步吧,理解一下,微信的开发文档中url怎么用。
刚开始接触是尝试主动调用,获得Access_Token.
corpid为企业的代号,corpsecret是赋予了权限的用户的secretid.
1 public static String getToken(){ 2 3 String urlname="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxxxxxxxxxxxx&corpsecret=xxxxxxxxxxxxxxx"; 4 String line=""; 5 URL url=null; 6 try{ 7 url=new URL(urlname); 8 URLConnection con=url.openConnection(); 9 BufferedReader read=new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8")); 10 line=read.readLine(); 11 read.close(); 12 }catch(Exception e){ 13 e.printStackTrace(); 14 } 15 System.out.println(line); 16 return line; 17 } 18 public static void main(String []args){ 19 getPeopleList(); 20 } 21 public static void getPeopleList(){ 22 String mm=getToken(); 23 JSONObject jsonobject=JSONObject.fromObject(mm); 24 String accessToken=(String)jsonobject.get("access_token"); 25 System.out.println("ACCESSTOKEN为"+accessToken); 26 }
其中用到了jsonobject用于转换string --->json,需要引入额外的jar包。
应用要求进行通讯录的管理,即应用需要能够和企业号的通讯录相同步。
要解决的问题,由于现在公司的应用都远远超过一个,并且目前每个应用都需要拥有自己维护的通讯列表,所以开发一个通用的通讯列表。
得到所有部门:
public static ArrayList<Department> getDepartmentList(){ ArrayList<Department>departlist=new ArrayList<Department>(); String accessToken=getToken(); String urlname="https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token="+accessToken; String line=""; URL url=null; try{ url=new URL(urlname); URLConnection con=url.openConnection(); BufferedReader read=new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8")); while((line=read.readLine())!=null){ // System.out.println(line); JSONObject jsonobject=JSONObject.fromObject(line); JSONArray array = jsonobject.getJSONArray("department"); for(int i=0;i<array.size();i++){ JSONObject object=array.getJSONObject(i); Department depar=new Department(object.getInt("id"),object.getString("name"),object.getInt("parentid"),object.getInt("order")); departlist.add(depar); // System.out.println(object.getString("name")); } } read.close(); }catch(Exception e){ e.printStackTrace(); } return departlist; }
其他获得tag之类方法类似。