当前位置: 首页 > 软件库 > 程序开发 > 网络工具包 >

isaced-appstore-connect-sdk

Node.js 模块
授权协议 MIT
开发语言 TypeScript
所属分类 程序开发、 网络工具包
软件类型 开源软件
地区 国产
投 递 者 颜新
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

先了解一下 App Store Connect API

这个 SDK 包含的功能特性

  •  API 密钥配置以支持 JWT 签名
  •  支持自定义网络库发送请求,如 fetch/node-fetch/axios 等…
  •  借助 OpenAPI 的自动化生成能力,支持苹果所有 API
  •  支持 Deno 运行时

安装

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 ID  issuer 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 运行时的发展而不断改进。

许可证

appstore-connect-sdk 可在 MIT 许可下使用开源项目的源代码,有关更多信息请参见 LICENSE 文件。

作者

该项目最初由 isaced 创建,但有许多伟大的贡献者。我们欢迎任何形式的贡献,以使该项目变得更好。

 

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

 相关资料
  • 我如何在Android和IOS上使用Flatter打开PlayStore/AppStore的特定URL,具体取决于执行该URL的智能手机?我的意思是,我想打开应用程序,而不是浏览器之类的东西。 在这个线程中,我找到了一些android的原生方法,但我如何使用flutter做到这一点? 如果目前没有办法做到这一点,这将是一个很好的功能来实现插件url_launcher。

  • 问题内容: 你们可以帮我将以下代码翻译成Swift吗? (或者我是否必须使用此链接: _itms://itunes.apple.com/app/id839686104_ ?) 提前致谢! 问题答案: 这里。但我强烈建议您学习Swift的基础知识!

  • 描述 (Description) 此函数使用文件句柄SOCKET和EXPR指定的地址连接到远程套接字。 EXPR应该是套接字的适当类型的打包地址。 语法 (Syntax) 以下是此函数的简单语法 - connect SOCKET, EXPR 返回值 (Return Value) 此函数在失败时返回0,在成功时返回1。

  • 一、功能演示 如图:根据自己需要配置 。配置相对简单不在详述。

  • connect(建立socket连线) 相关函数 socket,bind,listen 表头文件 #include<sys/types.h> #include<sys/socket.h> 定义函数 int connect (int sockfd,struct sockaddr * serv_addr,int addrlen); 函数说明 connect()用来将参数sockfd 的socket 连

  • connect 通知 ConnectableObservable 可以开始发出元素了 ConnectableObservable 和普通的 Observable 十分相似,不过在被订阅后不会发出元素,直到 connect 操作符被应用为止。这样一来你可以等所有观察者全部订阅完成后,才发出元素。 演示 let intSequence = Observable<Int>.interval(1, sch