接口放回的错 是accesstoken失效了 可是我accesstoken是先获取存到数据库 然后隔7000秒重新获取 求大神帮我看看
这是获取在线客服的方法
public List<String> getOnlineKefu(AccessToken token) {
GET_KEFU_ONLINE = GET_KEFU_ONLINE.replace("ACCESS_TOKEN",
token.getToken());
List<String> kefus = new ArrayList<String>();
try {
JSONObject object = HttpRequest.HttpGet(GET_KEFU_ONLINE);
logger.debug("##getOnlineKefu获取的初始json##"+object);
JSONArray array = (JSONArray) object.get("kf_online_list");
if (null == array) {
return null;
} else {
for (int i = 0; i < array.size(); i++) {
Kefu kefu = JSON.parseObject(
JSON.toJSONString(array.get(i)), Kefu.class);
kefus.add(kefu.getKf_account());
}
return kefus;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
这是获取AccessToken的方法
public AccessToken getATFromWeChat(String appid, String appsecret){
String requestUrl = access_token_url.replace("APPID", appid)
.replace("APPSECRET", appsecret);
try {
JSONObject object = HttpRequest.HttpGet(requestUrl);
AccessToken ACCESSTOKEN = new AccessToken();
ACCESSTOKEN.setToken(object.getString("access_token"));
ACCESSTOKEN.setExpiresIn(object.getInteger("expires_in"));
ACCESSTOKEN.setGettime(new Date().getTime());
return ACCESSTOKEN;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
/**
* 获取accesstoken并持久化
* @param appid
* @param appsecret
* @return
*/
public AccessToken getAT(String appid, String appsecret){
AccessToken token = service.findAT();
if(null==token){
token = getATFromWeChat(appid, appsecret);
service.insertAT(token);
return token;
}
else{
long gt = token.getGettime();
long now = new Date().getTime();
if((now-gt)>7000000){
token = getATFromWeChat(appid, appsecret);
service.updateAT(token);
return token;
}else{
return token;
}
}
}
这是多客服转发设置部分代码
AccessToken token = chatUtil.getAT(Content.APPID, Content.APPSECRET);
logger.debug("##多客服转发获取的token##"+token);
logger.debug("##此时的index##"+index);
List<String> kefus = new ArrayList<String>();
if(token!=null){
// 获取在线客服列表
kefus = getOnlineKefu(token);
logger.debug("##在线客服列表##"+kefus);
//获取当前用户基本信息
JSONObject object = getInfo(fromUserName,token);
logger.debug("##用户基本信息##"+object);
//保存信息到数据库
logger.debug("##查询数据库的结果##"+service.findInfoByOp(fromUserName));
if(null==service.findInfoByOp(fromUserName)){
service.saveWeChatInfo(setData(object));
}
}