appstore-connect-sdk
是一个 Node.js 模块,使用 TypeScript 编写,为开发人员提供了一个方便的与 App Store Connect API 进行交互。该模块基于 OpenAPI Generator 工具构建,并支持所有基于 OpenAPI 规范的 API。
简体中文 | English
- Automate your workflow with the App Store Connect API
- App Store Connect API Official Documentation
- WWDC 2018 303 - Automating App Store Connect (Video)
- API 密钥配置以支持 JWT 签名
- 支持自定义网络库发送请求,如 fetch/node-fetch/axios 等…
- 借助 OpenAPI 的自动化生成能力,支持苹果所有 API
- 支持 Deno 运行时
npm install appstore-connect-sdk
import { AppStoreConnectAPI } from "appstore-connect-sdk";
进入 App Store Connect -> Users and Access -> Keys 并创建您自己的密钥,这里也可以找到你的 private key ID
和 issuer ID
.
下载私钥后,通过文本编辑器打开包含私钥的 .p8
文件,它看起来像这样:
-----BEGIN PRIVATE KEY-----
AIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgKEn1VBakCdHIEcdS
aBWr/9laASzaAbF2LP7wTYjHK52gCgYIKoZIzj0DAQehRANCAAQ/jf2sxRvXEhjn
srw8kJcHvO0dQ1KmUlxZvATsFsjJbdQ1yAENAWItUoeTV0rhdajcdOQxKl1OPse0
nNdXXbA4
-----END PRIVATE KEY-----
现在使用这个 Private Key
+ isuer ID
+ private key ID
创建请求配置:
const client = new AppStoreConnectAPI({
issuerId: "<YOUR ISSUER ID>",
privateKeyId: "<YOUR PRIVATE KEY ID>",
privateKey: "<YOUR PRIVATE KEY>",
});
有关如何在 App Store Connect API 中通过 JWT 认证的更多信息,请查看 Apple 的身份验证指南:
你可以在 src/openapi/apis 找到所有 API 实体定义, 这些类通过 App Store Connect API - OpenAPI specification 进行自动化生成, 如果你遇到任何问题请提交一个 issue。
const api = await client.create(AppsApi);
const res = await api.appsGetCollection();
console.log(res);
这是完整的示例代码:
import { AppStoreConnectAPI } from "appstore-connect-sdk";
import {
AppsApi,
AppEventLocalizationsApi,
} from "appstore-connect-sdk/openapi";
const client = new AppStoreConnectAPI({
issuerId: "<YOUR ISSUER ID>",
privateKeyId: "<YOUR PRIVATE KEY ID>",
privateKey: "<YOUR PRIVATE KEY>",
});
const api = await client.create(AppsApi);
const res = await api.appsGetCollection();
console.log(res);
默认情况下使用内置的 fetch
函数进行 HTTP 请求,但请注意此函数需要 Node.js 版本 v18.0.0 或更高版本。
或者,你也可以通过在 AppStoreConnectAPI 构造函数中设置 fetchApi
选项来配置符合 Fetch API 标准规范的任何网络库,将其他网络库桥接过来。
import { AppStoreConnectAPI } from "appstore-connect-sdk";
import fetch from "node-fetch";
new AppStoreConnectAPI({
// ...
fetchApi: fetch as unknown as FetchAPI, // 这样所有网络请求都通过 node-fetch 接管
});
要更新 OpenAPI 生成的代码,请运行以下命令:
$ sh gen-openapi.sh
这将基于由 Apple 官方发布的 OpenAPI specification 规范文件,通过 OpenAPI Generator 生成 Typescript 代码。
appstore-connect-sdk
目前已经支持 Deno 环境,您可以在 deno_example 中查看在 Deno 环境中使用 appstore-connect-sdk
模块的示例。
我们致力于确保 appstore-connect-sdk
模块能够完全兼容 Node.js 和 Deno,我们将继续努力提高其与 Deno 的兼容性,随着 Deno 运行时的发展而不断改进。
appstore-connect-sdk 可在 MIT 许可下使用开源项目的源代码,有关更多信息请参见 LICENSE 文件。