什么是 App Store Connect API?

App Store Connect API 是一个苹果公司提供的用于访问和管理 App Store Connect 资源编程接口。App Store Connect 是苹果公司的一个在线平台开发者可以使用平台提交、管理和发布他们的 iOS、iPadOS、macOS、watchOS 和 tvOS 应用程序

通过 App Store Connect API,开发者可以自动化管理他们的 App Store Connect 资源例如创建更新应用程序添加删除用户获取提交应用程序的审核信息处理应用程序销售和财务数据等。

App Store Connect API 使用 RESTful 风格的 API,可以使用多种编程语言例如 Python、Java、Ruby、PHP、Swift 等)进行访问集成苹果公司提供了一系列文档代码示例,帮助开发者了解如何使用该 API,以及如何进行身份验证授权

我们可以用 App Store Connect API 来干嘛?

App Store Connect API 可以用于自动化管理和监控您的应用程序、App Store 上的销售数据用户反馈等。以下是一些使用 App Store Connect API 的具体例子

自动提交新应用程序开发可以使用 App Store Connect API 创建应用程序,从而自动化提交到 App Store 审核队列。这可以提高工作效率并减少手动工作量

应用程序信息更新:开发可以使用 App Store Connect API 更新应用程序数据(如应用程序描述屏幕截图、定价等),以便及时更新应用程序信息并吸引更多用户

监控应用程序审核状态开发者可以使用 App Store Connect API 获取应用程序审核状态以便及时了解应用程序审核进程做好发布准备

查看应用程序销售和财务数据:开发者可以使用 App Store Connect API 获取应用程序销售和财务数据,如销售收入下载次数、应用程序内购等,以便分析优化应用程序销售策略业务模式

添加和管理用户开发者可以使用 App Store Connect API 添加和管理应用程序用户以便控制他们对应用程序的访问权限角色

使用 Node.JS 访问 App Store Connect API

appstore-connect-sdk一个 Node.js 模块,使用 TypeScript 编写,为开发人员提供了一个方便的与 App Store Connect API 进行交互。该模块基于 OpenAPI Generator 工具构建,并支持所有基于 OpenAPI 规范的 API。

以下是一些使用 appstoreconnectsdk 的好处:

安装

npm install appstore-connect-sdk

使用

1. Import appstore-connect-sdk
import AppStoreConnectAPI from "appstore-connect-sdk";
2. 创建 API 配置

进入 App Sotre Connect -> Users and Access -> Keys创建自己密钥这里也可以找到你的 private key IDissuer ID.

下载私钥后,通过文本编辑打开包含私钥的 .p8 文件,它看起来像这样:

-----BEGIN PRIVATE KEY-----
AIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgKEn1VBakCdHIEcdS
aBWr/9laASzaAbF2LP7wTYjHK52gCgYIKoZIzj0DAQehRANCAAQ/jf2sxRvXEhjn
srw8kJcHvO0dQ1KmUlxZvATsFsjJbdQ1yAENAWItUoeTV0rhdajcdOQxKl1OPse0
nNdXXbA4
-----END PRIVATE KEY-----

现在使用这个 Private Key + isuer ID + private key ID 创建请求配置:

const appStoreConnect = new AppStoreConnectAPI({
  issuerId: "<YOUR ISSUER ID>",
  privateKeyId: "<YOUR PRIVATE KEY ID>",
  privateKey: "<YOUR PRIVATE KEY>",
});

有关如何在 App Store Connect API 中通过 JWT 认证的更多信息,请查看 Apple 的身份验证指南:

3. 创建 API 并发送请求

你可以在 src/openapi/apis 找到所有 API 实体定义, 这些类通过 App Store Connect API – OpenAPI specification 进行自动化生成, 如果你遇到任何问题请提交一个 issue

const res = await client.call(AppsApi).appsGetCollection();
console.log(res);

这是完整示例代码

import AppStoreConnectAPI from "appstore-connect-sdk";
import {
  AppsApi,
  AppEventLocalizationsApi,
} from "appstore-connect-sdk/dist/openapi/apis";
const appStoreConnect = new AppStoreConnectAPI({
  issuerId: "<YOUR ISSUER ID>",
  privateKeyId: "<YOUR PRIVATE KEY ID>",
  privateKey: "<YOUR PRIVATE KEY>",
});
const res = await client.call(AppsApi).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 生成的代码

要更新 OpenAPI 生成的代码,请运行以下命令

$ sh gen-openapi.sh

这将基于由 Apple 官方发布OpenAPI specification 规范文件,通过 OpenAPI Generator 生成 Typescript 代码。

Deno 兼容

appstore-connect-sdk 模块在大多数情况下都与 Deno 兼容,但在 Deno 环境下使用时有一些限制。目前,Deno 对于 Node crypto 模块兼容支持尚未完成,这意味着 appstore-connect-sdk 模块的某些依赖模块特性在 Deno 中可能无法正常工作

具体而言,appstore-connect-sdk 模块使用的 jsonwebtoken 包不完全兼容 Deno。因此,在 Deno 环境中,无法使用 jsonwebtoken 生成 JWT(JSON Web Token),以便与 App Store Connect API 进行身份验证

为了解决这个问题,您可以手动使用与 Deno 完全兼容的库(如 djwt生成 JWT。然后将手动生成的 JWT 传递给 appstore-connect-sdk 模块以便与 App Store Connect API 进行身份验证

您可以在 deno_example查看在 Deno 环境中使用 appstore-connect-sdk 模块示例

我们致力于确保 appstore-connect-sdk 模块能够完全兼容 Node.js 和 Deno,我们将继续努力提高其与 Deno 的兼容性,随着 Deno 运行时的发展而不断改进。

通过 AWS/Vercel/Deno Deploy 等函数计算快速构建 App Store Connect 自动化任务

appstore-connect-sdk 模块提供了一个方便的方式,让开发者快速地与 App Store Connect API 进行交互。不过,为了进一步提高使用效率,你也可以将 appstore-connect-sdk 模块与 AWS Lambda、Vercel 或 Deno Deploy 等函数计算服务一起使用。

以 AWS Lambda 为例,你可以通过将 appstore-connect-sdk 作为依赖包添加到 AWS Lambda 函数的 Node.js 运行环境中,快速搭建一个用于自动化 App Store Connect API 操作的 Lambda 函数。在 Vercel 或 Deno Deploy 等平台上,你也可以通过类似的方式使用 appstore-connect-sdk 模块。

原文地址:https://blog.csdn.net/isaced/article/details/129136788

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_22388.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注