首先获取access_token,这边只是简单的获取一下,真的做项目的时候,需要定时获取,可以在监听器或servlet中完成获取,并发到缓存中,之后单独开一篇文章。这边先入门
import com.google.gson.Gson;
import com.wechat.common.pojo.AccessToken;
/**
*
* 获取accessToken
*
* @author WRY
*
*/
public class AccessTokenUtil {
private static String ACCESSTOKENURL = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpId}&corpsecret={secret}";
/**
* 获取access_Token
*
* @return
*/
public static String getAccessToken(String corpId, String secret) {
String url = ACCESSTOKENURL.replace("{corpId}", corpId).replace("{secret}", secret);
String accessTokenJsonStr = Browser.httpGet(url);
Gson gson = new Gson();
AccessToken accessToken = gson.fromJson(accessTokenJsonStr, AccessToken.class);
if(accessToken.getErrcode() != 0) {
return null;
}else {
return accessToken.getAccess_token();
}
}
这边接口比较多,不做意义的测试,基本差不多,这边笔者就写了,成员的增删改查和接受通讯录变更事件
更多可参见企业微信api:https://work.weixin.qq.com/api/doc
import org.junit.Test;
import com.google.gson.Gson;
import com.wechat.addressbook.model.ReturnMessage;
import com.wechat.addressbook.model.User;
import com.wechat.common.util.Browser;
/**
* 通讯录的测试类
* @author WRY
*
*/
public class AddressbookTest {
private static String URL = "https://qyapi.weixin.qq.com/cgi-bin/user/{operate}?access_token={accessToken}";
/**
* 创建成员
*/
@Test
public void testAddUser() {
User user = new User();
user.setUserid("lisi");
user.setName("李四");
user.setMobile("17502115451");
int department[] = {1};
user.setDepartment(department);
String accessToken = "YaTt6au3Dq8C7WtP_OY6c84BMUFDIX8IkzhUohedukBmf87ccUyHXj76ZLe5CSa0utAFU8dQhkk0K-Avjl5aBRzratADIFEgR5Wc9KY9Tt8YseTrBYbleFAjkcv9UNE5UCbtpqOgFtmL3VPuL-Z37gEC9fv8eHPwJYvgricJHp7GQ5-d7xtw1e-9s_5FfVXLZ4iFKr0EBjcsKOcBE-SIjQ";
String url = URL.replace("{operate}", "create").replace("{accessToken}", accessToken);
System.out.println(url);
// 将对象序列化
String param = new Gson().toJson(user);
System.out.println(param);
// 提交到企业微信
String soundCode = Browser.httpPost(url, param);
// json数据转为对象
ReturnMessage rm = new Gson().fromJson(soundCode, ReturnMessage.class);
if(rm.getErrcode() == 0) {
System.out.println("创建成功");
} else {
System.out.println("创建失败" + rm.getErrmsg());
}
}
/**
* 查询成员
*/
@Test
public void testQueryUser() {
String accessToken = "YaTt6au3Dq8C7WtP_OY6c84BMUFDIX8IkzhUohedukBmf87ccUyHXj76ZLe5CSa0utAFU8dQhkk0K-Avjl5aBRzratADIFEgR5Wc9KY9Tt8YseTrBYbleFAjkcv9UNE5UCbtpqOgFtmL3VPuL-Z37gEC9fv8eHPwJYvgricJHp7GQ5-d7xtw1e-9s_5FfVXLZ4iFKr0EBjcsKOcBE-SIjQ";
String userId = "zhangsan";
String url = URL.replace("{operate}", "get").replace("{accessToken}", accessToken)+"&userid="+userId;
System.out.println(url);
String soundCode = Browser.httpGet(url);
System.out.println(soundCode);
User user = new Gson().fromJson(soundCode, User.class);
if(user.getErrcode() == 0) {
System.out.println("查询成功" + user);
} else {
System.out.println("查询失败");
}
}
/**
* 更新成员
*/
@Test
public void testUpdateUser() {
User user = new User();
user.setUserid("lisi");
user.setName("李四");
user.setMobile("17502115451");
int department[] = {1};
user.setDepartment(department);
user.setPosition("java开发工程师");
String accessToken = "YaTt6au3Dq8C7WtP_OY6c84BMUFDIX8IkzhUohedukBmf87ccUyHXj76ZLe5CSa0utAFU8dQhkk0K-Avjl5aBRzratADIFEgR5Wc9KY9Tt8YseTrBYbleFAjkcv9UNE5UCbtpqOgFtmL3VPuL-Z37gEC9fv8eHPwJYvgricJHp7GQ5-d7xtw1e-9s_5FfVXLZ4iFKr0EBjcsKOcBE-SIjQ";
String url = URL.replace("{operate}", "update").replace("{accessToken}", accessToken);
System.out.println(url);
// 对象序列化
String param = new Gson().toJson(user);
String soundCode = Browser.httpPost(url, param);
ReturnMessage rm = new Gson().fromJson(soundCode, ReturnMessage.class);
if(rm.getErrcode() == 0) {
System.out.println("更新成功");
} else {
System.out.println("更新失败" + rm.getErrmsg());
}
}
/**
* 删除成员
*/
@Test
public void testDeleteUser() {
String accessToken = "YaTt6au3Dq8C7WtP_OY6c84BMUFDIX8IkzhUohedukBmf87ccUyHXj76ZLe5CSa0utAFU8dQhkk0K-Avjl5aBRzratADIFEgR5Wc9KY9Tt8YseTrBYbleFAjkcv9UNE5UCbtpqOgFtmL3VPuL-Z37gEC9fv8eHPwJYvgricJHp7GQ5-d7xtw1e-9s_5FfVXLZ4iFKr0EBjcsKOcBE-SIjQ";
String userId = "zhangsan";
String url = URL.replace("{operate}", "delete").replace("accessToken", accessToken) + "&userid=" + userId;
String soundCode = Browser.httpGet(url);
ReturnMessage rm = new Gson().fromJson(soundCode, ReturnMessage.class);
if(rm.getErrcode() == 0) {
System.out.println("删除成功");
} else {
System.out.println("删除失败" + rm.getErrmsg());
}
}
}
接受通讯录变更事件,首先得在企业微信后台设置一下。
其次就是测试接口,接口的接口的接入可参考我的另外一篇文章
https://blog.csdn.net/wrongyao/article/details/80192536
接入以后,就可以在这个接口上实现自己的逻辑了。