SpringBoot调用微信接口获取小程序每日访问量

一、查看微信开放文档

文档地址:获取用户访问小程序数据日趋势 | 微信开放文档

调用接口为:

https://api.weixin.qq.com/datacube/getweanalysisappiddailyvisittrend?access_token=ACCESS_TOKEN

 需要参数

需要token,token也是调用微信接口,传入小程序appid和secret

 二、实现步骤

  1. 使用restTemplate发送请求获取token
//微信获取token的url
    private final String ACCESS_TOKEN_URL =
            "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s";

@Autowired
    private RestTemplate restTemplate;

/**
     * 获取TOKEN
     * @return
     */
    @Override
    public String getAppAccessToken(String appid, String secret) {
        ResponseEntity<JSONObject> responseEntity  =
                restTemplate.getForEntity(String.format(ACCESS_TOKEN_URL,appid,secret), JSONObject.class);
        String accessToken = responseEntity.getBody().getString("access_token");
        return accessToken;

    }

2. 获取到token后调用获取小程序访问量的接口

//微信获取小程序访问数据的url
    private final String GET_DAILY_VISIT_TREND =
            "https://api.weixin.qq.com/datacube/getweanalysisappiddailyvisittrend?access_token=%s";

@Autowired
    private RestTemplate restTemplate;

/**
     * 获取用户访问小程序数据日趋势
     * @param beginDate
     * @param endDate
     * @return
     */
    @Override
    public List<AppletVisitsGgzp> getDailyVisitTrend(String appAccessToken, String beginDate, String endDate) {
        // 创建请求 URL
        String url = String.format(GET_DAILY_VISIT_TREND, appAccessToken);
        //设置请求头
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type","application/json;charset=UTF-8");
        // 创建请求参数
        JSONObject param = new JSONObject();
        param.put("begin_date", beginDate);
        param.put("end_date", endDate);
        HttpEntity<JSONObject> entity = new HttpEntity<>(param, headers);
        // 发送 POST 请求并获取返回结果
        ResponseEntity<JSONObject> responseEntity = restTemplate.postForEntity(url, entity, JSONObject.class);
        JSONObject jsonObject = JSON.parseObject(responseEntity.getBody().toString());
        JSONArray jsonArray = jsonObject.getJSONArray("list");
        List<AppletVisitsGgzp> visitsGgzpList = jsonArray.toJavaList(AppletVisitsGgzp.class);
        return visitsGgzpList;
    }

说明:

地址中的%s是占位符,使用String.format()进行包装,就可以替换为实际的值,token是请求参数不是body中的参数

由官方文档可知传入的参数是json格式,就需要用HttpEntity包装参数

返回结果为json格式的集合,有多种方式接收,笔者使用的是先取到json中的数据,再转成集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值