苹果官方文档一直被开发者诟病的点:
1、大部分是英文文档;
2、没有示例,不知道请求参数怎么传,返回哪些字段,格式是什么样;
3、文档太复杂,接口太多,不知道某个功能,该用哪个接口。
最近由于要处理大量内购商品(查询、检验、上传、修改),就再次研究了一下《App Store Connect API》,无意中有一个重大发现,直接让学习效率翻倍------那就是通过抓包App Store Connect苹果后台的网页请求来学习App Store Connect API接口使用。
我对比发现,App Store Connect苹果后台的网页请求和App Store Connect API接口请求,只有域名和path上的差异,苹果后台的网页请求换下域名就变成了App Store Connect API请求,就可以直接用了!
例如,请求某个App(假设App Apple ID为1436123456)的所有内购商品接口(官方文档)
苹果后台网页的请求
appstoreconnect.apple.com/iris/v1/app...AppStoreConnectAPI的请求
api.appstoreconnect.apple.com/v1/apps/143...
我们可以看到,网页请求的url,在域名appstoreconnect.apple.com前面加上api.变成二级域名api.appstoreconnect.apple.com,再拼上/iris/路径,就变成了AppStoreConnectAPI接口了。
苹果后台网页请求url
appstoreconnect.apple.com/iris/...AppStoreConnectAPI请求url
api.appstoreconnect.apple.com/...
当你想实现某个功能,但不知道该用App Store Connect API哪个接口,或者你不知道请求参数怎么传,响应参数有哪些、数据结构是什么样,你就去抓包苹果后台网页请求,寻找疑似接口,再去对比《App Store Connect API》官方文档,文章开头的问题2和问题3直接解决了!
这个技巧堪称神技,苹果的接口设计有些反人类,你不这么做,光看官方文档还真搞不定。
举个例子,修改内购商品的本地化商品名称。你得根据商品本地化状态(区别于内购商品的状态,每条本地化都有个单独的状态)的不同调不同的接口:
当你内购商品本地化态为,"准备提交"、"等待审核" 时,你需要调 Modify an In-App Purchase Localization这个接口。
当你内购商品本地化态为,"被拒绝" 时,你需要调 Create an In-App Purchase Localization。
同样是修改名称,"被拒绝"状态时,却要调"Create"接口,没想到吧!苹果官方文档上没有任何这方面的描述,多亏了我这个"神技"看苹果怎么调用的,这个问题我估计要蒙圈好久。
授人以鱼不如授人以渔,以前我写过几篇关于App Store Connect API的具体用法,但时间久了可能会过时,也存在不全面等问题,自己也没有精力维护。所以,教会大家自力更生,才是上上策。