持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
最近收到了一个需求,需要完成一个下架监控系统,就是当app下架时能够及早发现并发送通知。 下架基本上就是说你的用户流失完了,损失很严重,因此能够今早发现app下架,就能早做处理。
什么是下架
下架就是你这个app在市场内无法搜索了,无法安装。 但是对于之前安装的用户,除了原生支付,其他一般功能不会受到影响。
为什么下架
这个原因太多了,具体官方会给你发邮件。
监控iOS下架
我们随便在美区里找一个下架的app,apps.apple.com/us/app/id15… 其中id后面的部分就是苹果的appId,每次新建app后都会产生。
这里有一个苹果官方的API,https://itunes.apple.com/lookup?id=${appId}
{
"resultCount":1,
"results": [{}]
}
其中的resultCount就是这个产品是否在线,如果等于1就是在线,反之就是下架。
需要注意的一点是,这个接口默认是文件下载,因此需要指定一返回值类型:json.
由于这个接口配置了cors,所以需要通过node去请求。这里我采用axios 基本代码如下
const axios = require('axios')
axios.get('https://itunes.apple.com/lookup',{
responseType:'json',
params:{
id:1595794091
}
})
.then(res=>console.log(res.data))
监控安卓下架
很奇怪的事,安卓并没有什么好用的接口,但是经过我的仔细琢磨,还是发现了如何监控。
我们打开Google play,随便选择一个app,可以发现他的链接是如下格式https://play.google.com/store/apps/details?id=com.netflix.mediaclient
很明显的是,id后面是app的包名,也就是bundleId.
现在我们随便编一个包名,并打开F12-->network-->all
很明显,当这个app不存在时,这个网址会返回404.因此,我们可以通过http状态码判断app是否在线
基本代码如下
const axios = require('axios')
axios.get('https://play.google.com/store/apps/details',{
params:{
id:'com.test.test'
}
})
.then(res=>console.log(res.status))
下期预告
在下架监控系统中,我选择了json文件作为数据库,所以我选择了本文的主角lowdb.