前言:
有一天了不起遇到了正在开发微信小程序的学弟,了不起会心一笑。
了不起:学弟啊,上次教你了accessToken的维护,你都懂了吧?
了不起学弟:哈哈,那当然,我现在都懂的,调用接口方面都已经没问题啦!
了不起:哦?是吗,那我考考你!假设你调微信的接口,超出限制了你怎么办?你碰到一些微信返回的错误你该怎么做相关处理?
了不起学弟:。。。容我想想
了不起:哈哈,那还是我来给你讲一讲微信openApi管理吧!
正文:
今天了不起就通过三方面讲一下api管理。
1.查询Api调用额度:
官方网址:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/openApi-mgnt/getApiQuota.html 调用此接口,我们可以查询到该接口当天该账号可调用的次数,当天已经调用的次数,当天剩余调用次数。
调用这个接口也是很简单的。入参包含:accessToken,cgi_path。第一个参数就是调用接口凭证,第二个参数就是接口请求地址。出参包含:上面我所说的可查询到的信息。
举例:假设我们要查询获取accessToken接口的api调用额度。我们cgi_path就要传/cgi-bin/token(这个参数不需要传域名,同时第一个/也不要遗漏了)
错误示例:如果我们cgi_path传的不对,那么接口就会返回76021,msg是cgi_path not found, please check。
2.重置Api调用次数:
官方网址:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/openApi-mgnt/clearQuota.html 调用此接口,可以清空每日调用接口的次数。(每个账号一个月有10次清空的机会)
入参包含:accessToken,appid(需要情况的appid,每一个小程序或者公众号都有属于自己的appid)
错误示例:当我们达到了清空的上限10次之后,再调用这个接口,就会报错。报错信息:48006,forbid to clear quota because of reaching the limit。
还有另外一个接口也是可以情况api调用次数,只是入参有所不同,这个接口是用appSecret进行操作的。
官方网站:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/openApi-mgnt/clearQuotaByAppSecret.html
入参包含:accessToken,appSecret(这个是appid的唯一秘钥凭证)
3.查询rid信息:
官网地址:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/openApi-mgnt/getRidInfo.html 调用此接口,可以查询错误返回的具体信息,可以让开发者快速定位错误信息。
注意事项:查询rid是属于私密行为,也就是说开发者查询小程序A的rid信息,就要用A的accessToken去调用,不可以用其他小程序或者服务号的accessToken去调用。
入参包含:accessToken,rid。出参包含:发送请求的耗时,时间戳,地址,请求参数,请求ip
通过这三个接口,我们就可以我们就可以做到查询接口调用次数,如果接口调用次数即将超过上限,我们就可以调用重置api,以防某些报错。当遇到某些特定的错误,比如accessToken非法或者失效,我们通过rid获取到这个错误的时候,我们就可以重新去调获取令牌的接口。系统可以合理利用这几个接口,去完善系统的可靠性。
我们一般在开发小程序/公众号等,在系统的管理系中,可以合理利用这一点进行api管理。
这里也给大家举个例子:在我们开发中,有部分接口是会有每日的使用上限的,而当我们需要大量调用此接口时,就会遇到调用的限制问题。
这里也有几种处理方式,我们可以起定时任务每一小时去执行,查看接口调用次数是否达到顶值,达到了则可以重置api。
我们也可以从api的返回,达到最大调用次数的时候,通过rid来获取这个信息,在做重置api处理。
总结:
了不起:通过这三部分,我们就可以管理小程序服务号等的openApi了。了不起学弟:懂了,懂了,哈哈,这次多亏了了不起,我又学到了很多的知识!了不起:学习路上,任重而道远,你还需要多努力努力呀!调用接口是很简单的事情,合理利用接口去完善你的系统才是重要的,提升系统的高可用,才是一个优秀的程序员需要多多考虑的事情!