进行企业微信的开发,首先需要是管理员身份,方便所需ID的获取
进入企业微信后台的方式有两种,
第一种:登录电脑版本的企业微信,如果是管理员身份,点击下图中图标,可以直接进入企业微信后台,并且已登录。
第二种:
官网地址:https://work.weixin.qq.com/
登录地址:https://work.weixin.qq.com/wework_admin/loginpage_wx?from=myhome
本篇文章以为自建应用为例(自建应用会了,自带应用通过API也能看懂会用)
首先创建一个应用
access_token是企业后台去企业微信的后台获取信息时的重要票据,由corpid和secret产生。所有接口在通信时都需要携带此信息用于验证接口的访问权限
请求方式:GET(HTTPS)
请求URL:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRECT
corpsecred的位置在应用管理中:如下图
把组好的链接放在浏览器中访问,如果返回的结果如下图,就说明拼接正确
接下来的工作就是把Access_token提取出来
HttpRequestUtil类---获取json
import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ConnectException;
import java.net.URL;
/**
* Company:xhb
* Author:xhb
* Date: 2018/9/6
* Description:网络请求工具类
*/
public class HttpRequestUtil {
/**
* 若不需要传参,调用改方法请求
*
* @param requestUrl
* @param requestMethod
* @return
*/
/* public static String httpRequest(String requestUrl, String requestMethod) {
return httpRequest(requestUrl, requestMethod, null);
}*/
/**
* 调用url,返回数据
*
* @param requestUrl
* @param requestMethod
* @param outputStr
* @return
*/
public static String httpRequest(String requestUrl/*, String requestMethod, String outputStr*/) {
try {
URL url = new URL(requestUrl);
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
// 设置请求方式(GET/POST)
/*conn.setRequestMethod(requestMethod);*/
conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");
// 当outputStr不为null时向输出流写数据
/*if (null != outputStr) {
OutputStream outputStream = conn.getOutputStream();
// 注意编码格式
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}*/
// 从输入流读取返回内容
InputStream inputStream = conn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
StringBuffer buffer = new StringBuffer();
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
// 释放资源
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
inputStream = null;
conn.disconnect();
return buffer.toString();
} catch (ConnectException ce) {
System.out.println("连接超时:{}");
} catch (Exception e) {
// System.out.println("https请求异常:{}");
}
return null;
}
}
Access_token类---实体
/**
* access_token实体
* @author xhb
* @date
*/
public class Access_token {
private String errcode;
private String errmsg;
private String access_token; //access_token
private String expires_in;
public String getErrcode() {
return errcode;
}
public void setErrcode(String errcode) {
this.errcode = errcode;
}
public String getErrmsg() {
return errmsg;
}
public void setErrmsg(String errmsg) {
this.errmsg = errmsg;
}
public String getAccess_token() {
return access_token;
}
public void setAccess_token(String access_token) {
this.access_token = access_token;
}
public String getExpires_in() {
return expires_in;
}
public void setExpires_in(String expires_in) {
this.expires_in = expires_in;
}
}
GetAccess_token类---封装获取Access_token
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSONObject;
import com.ssm.mll.entity.Access_token;
/**
* 获取access_token
* @author xhb
* @date 2018年10月15日17:24:41
*/
public class GetAccess_token {
//access_token
public static String getAccess_token(){
String rat = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRECT";
String s = HttpRequestUtil.httpRequest(rat);
s = "["+s+"]";
//把读出来的json文件换换为实体
List at = new ArrayList();
at = JSONObject.parseArray(s, Access_token.class);
return at.get(0).getAccess_token();
}
}
使用方式:
//获取access_token
String access_token = GetAccess_token.getAccess_token();
通过此方法即可获取到access_token,获取到access_token就是完成了第一步,这是后续接口调用的凭证。