科技微讯

检测 App Store 应用更新

苹果官方有一个叫 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 的命令行工具。

暂无评论