logo科技微讯

检测 App Store 应用更新

作者:科技微讯
日期:2021-08-05
📝 笔记

苹果官方有一个叫 itunes search api 的东西,可以查询任意 app 的信息,如果一款应用只在某些国家或地区上线,则需要加上国家信息,如果不加默认就是 us。这个接口支持的各种参数可以看苹果官方的说明,文档显示 search api 的请求频率限制在每分钟 20?但是实际好像不止。

The Search API is limited to approximately 20 calls per minute

注意这个 API 不支持查询 app bundle 的信息,例如:

const url =
  "https://apps.apple.com/app-bundle/microsoft-365-mobile-apps/id1564009682";

可以在一个链接中同时请求多个 app 的信息:

const ids = "461703208,414478124";
const api = `https://itunes.apple.com/lookup?id=${ids}&country=cn&output=json&now=kdjai00988fda&lang=zh_cn`;

提供错误的参数,api 会返回它接收那些参数的信息:

{
  "errorMessage": "Invalid value(s) for key(s): [country]",
  "queryParameters": {
    "output": "json",
    "callback": "A javascript function to handle your search results",
    "country": "ISO-2A country code",
    "limit": "The number of search results to return",
    "term": "A search string",
    "lang": "ISO-2A language code"
  }
}

可是这个 api 可能有延迟,stackoverflow 有人说延迟可能长达 24 小时,下面是原话:

"In general, there is a 24 hours delay for updated app information to go from App Store Connect to the public."

为了解决这个问题,可以在 url 后增加一个随机参数,例如当前时间戳。

值得一提的事,苹果官方提供了一个 json 生成工具,它可以生成 app、音乐、播客 等的榜单、列表等信息。另外,appsliced 可以检测 app 的 iap 应用内购买的价格信息,itunes search api 无法获取这个信息,在 stackoverflow 上看到有人说 Transporter 可以,但它是基于 java 的命令行工具。

donation赞赏
thumbsup0
thumbsdown0
暂无评论