由于本站(Eswink技术学习)已经接入了百度小程序(Eswink小伍学习),并且使用了百度小程序官方给出的云加速服务,CloudCache即云缓存,每当Eswink发布了新的内容就需要刷新,否则小程序将不会显示最新的内容。所以决定创建一个云函数用于刷新云缓存。
云函数编写
我选择使用PHP来编写云函数,当然你也可以选择python
或者go
甚至node
。
本次云函数分为两个方法,main_handler
和get_token
,前者为初始化方法,便于API网关运行,后者用于获取百度开发者的access_token
。
获取开发者access_token
function get_token(){
$appid = "小程序 appid";
$secret = "小程序 app secret";
$r = file_get_contents("https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=".$appid."&client_secret=".$secret."&scope=smartapp_snsapi_base");
$data = json_decode($r,true);
$access_token = $data['access_token'];
return json_encode($access_token);
}
正常执行会返回字符串类型的access_token
,失败则会返回错误。
请求刷新云缓存
function main_handler($event, $context) {
$appid = "小程序 appid";
$access_token = get_token();
$api = file_get_contents("https://openapi.baidu.com/rest/2.0/smartapp/storage/component/reset?appkey=".$appid."&access_token=".$access_token);
$post = json_decode($api,true);
return json_encode($post);
}
请求成功会返回带有success
的json
,失败的话则会显示错误代码和其他。
API网关部署
我这里将云函数配置为API网关触发,如果你有其他需要,可以创建其他触发器。如果有不懂API网关部署的,可以去看我前面的文章:「API接口上云|Serverless云函数服务部署实战」。
部署完毕后,再将调用函数添加到主题的文件中,或者你就设置每天定时触发云缓存刷新,不过这种方法对于你的服务器的要求还是比较高,如果是学生机或者低配机器建议还是手动刷新缓存。
📮评论