微信公众平台获取客服聊天记录(服务号)
程序员文章站
2023-12-22 15:54:10
...
环境: java语言 , 服务号,
功能:服务号有一个客服功能,我目前需要获取所有客服的聊天记录。
环境介绍:
1.首先需要在微信公众平台开发者配置中配置一些参数
其中开发者id 和开发者密码用来获取AccessToken , 要配置IP白名单,不然调用客户聊天记录失败。
2.登录服务号,找到这个客服功能。目前我这个服务号有俩个客服,我现在需要获取这俩个客服的聊天记录。
2.找到客服功能的开发文档。
地址:https://developers.weixin.qq.com/doc/offiaccount/Customer_Service/Obtain_chat_transcript.html
post 请求,传参方式如下,注意:每次查询的时间段不能超过24小时。
3.代码实战:
@GetMapping(value = "/sendCondition")
public void sendCondition() throws ParseException {
//1.获取AccessToken
String accessToken = WeiXinParamesUtil.getAccessToken("customerService");
String url = "https://api.weixin.qq.com/customservice/msgrecord/getmsglist?access_token=ACCESS_TOKEN";
url = url.replace("ACCESS_TOKEN", accessToken);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = simpleDateFormat.parse("2020-02-11 8:45:25");
long startTime = date.getTime()/1000;
Date date1 = simpleDateFormat.parse("2020-02-11 21:45:26");
long endTime = date1.getTime()/1000;
String jsonStr = " {\n" +
" \"starttime\" : "+String.valueOf(startTime)+",\n" +
" \"endtime\" : "+String.valueOf(endTime)+",\n" +
" \"msgid\" : 1,\n" +
" \"number\" : 10000 \n" +
"}";
JSONObject jsonObject = SendRequest.sendPost(url, jsonStr);
System.out.println("1111-----" + jsonObject);
}
public static String getWeiAccessToken ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
/**
* 获取微信公众平台的access_token
* @param type
* @return
*/
public static String getAccessToken(String type) {
String url = "";
if ("users".equals(type)) {
url = getWeiAccessToken.replace("APPID", WeiXinParamesUtil.APPID).replace("APPSECRET", WeiXinParamesUtil.SECRET);
}else if("customerService".equals(type)){
url = getWeiAccessToken.replace("APPID", WeiXinParamesUtil.APPID).replace("APPSECRET", WeiXinParamesUtil.SECRET);
}
JSONObject departmentJson = SendRequest.sendGet2(url);
return departmentJson.getString("access_token");
}
4.测试结果如下:
在网页上显示为:
5.返回结果参数说明: