问题背景
今天在搞一个微信小程序的时候,使用到了发布内容的问题,然后想使用微信请求接口,结果遇到了请求接口需要获取调用凭证access_token。
查看微信小程序开发文档
打开微信小程序开发文档后,打开服务端相关文档,如下图:
图中可以看到功能的描述,他是获取全局唯一后台接口调用凭证,有效期为7200秒,而且需要我们自己保存,并且需要自己定期维护更新这个token
假如,我们使用云托管,可以通过微信开放接口免维护acctess_token的调用
这里,我们使用的是https调用,采用我们自己的服务端去调用微信的服务端的方式,不通过云调用也不通过前端调用,
实现方案
public static String getAccessToken(String appid,String appsecret){
String reqUrl = ACCESS_TOKEN_URL.replaceAll("APPID",appid).replaceAll("APPSECRET",appsecret);
String result = HttpUtils.httpsRequest(reqUrl, "GET", null);
JSONObject jsonObject = JSONObject.parseObject(result);
String access_token = (String) jsonObject.get("access_token");
System.out.println(access_token);
return result;
}
public static void main(String[] args) {
String accessToken = getAccessToken("wx7cbdf2fc3c123456", "fd54746d6eb3bf2b9770be4081234567");
System.out.println(accessToken);
}
通过上方的实现代码,我们可以看到将请求地址中的APPID替换成我们自己的appid,以及appsecret也换成我们自己的秘钥。
然后,发起GET请求,请求到微信服务器获取返回access_token结果,在将其转为JSONObject对象,即可根据key获取到他的value值。
这样既能获取的到access_token,也能获取他的有效时间。
然后再根据这个过期时间,我们再去缓存token即可。
具体的缓存结构我没有写,最简单的方案就是先判断缓存中是否存在,如果不存在再去调用接口,返回正常的token后放到我们的缓存中,并且将结果返回。
好了,今天关于微信小程序中获取接口调用凭证access_token的分享就到这里,欢迎大家留言交流。
也欢迎大家关注我的工种昊《coder练习生》