Adobe I/O 事件列表
安装
$ npm install @adobe/aio-lib-events
使用量
- 初始化 SDK
const sdk = require('@adobe/aio-lib-events')
async function sdkTest() {
//initialize sdk
const client = await sdk.init('<organization id>', 'x-api-key', '<valid auth token>', '<options>')
}
- 使用已初始化的 SDK 调用方法
const sdk = require('@adobe/aio-lib-events')
async function sdkTest() {
// initialize sdk
const client = await sdk.init('<organization id>', 'x-api-key', '<valid auth token>', '<options>')
// call methods
try {
// get profiles by custom filters
const result = await client.getSomething({})
console.log(result)
} catch (e) {
console.error(e)
}
}
- 利用传票人进行日记
const sdk = require('@adobe/aio-lib-events')
async function sdkTest() {
// initialize sdk
const client = await sdk.init('<organization id>', 'x-api-key', '<valid auth token>', '<http options>')
// get the journalling observable
const journalling = client.getEventsObservableFromJournal('<journal url>', '<journalling options>')
// call methods
const subscription = journalling.subscribe({
next: (v) => console.log(v), // Action to be taken on event
error: (e) => console.log(e), // Action to be taken on error
complete: () => console.log('Complete') // Action to be taken on complete
})
// To stop receiving events from this subscription based on a timeout
setTimeout(() => subscription.unsubscribe(), <timeout in ms>)
}
一个观察者可以拥有多个订阅者. 每次订阅都可以有不同的处理方式. 更多关于使用传票人进行日记检查的细节 从《杂志》中获取EventsObservable
类
- 事件核心API
此类提供了调用您的 Adobe I/ O 事件 API 的方法 . 在调用任何方法之前
init有关方法 有组织有效值的 Id, apiKey, accessToken 和可选的 http 选项, 如超时 和最多复试次数
职能
- init( 组织、 apiKey、 accessToken、 [httpoptions]) ⇒
Promise.<EventsCoreAPI> 返回以新事件CoreAPI对象解决的保证 .
类型防御
- CoreAPI 选项 数字 :
object - 提供者选择 数字 :
object - 提供者选项 数字 :
object - 提供者输入模式 数字 :
object - 事件元数据输入模式 数字 :
object - 感兴趣的事件 数字 :
object - 注册模式 数字 :
object - 登记更新模式 数字 :
object - 页次 数字 :
object - 事件周刊选项 数字 :
object - 事件周刊 数字 :
object
事件核心API
此类提供了调用您的 Adobe I/ O 事件 API 的方法 .
在调用任何方法之前 init 有关方法
有组织有效值的 Id, apiKey, accessToken 和可选的 http 选项, 如超时
和最多复试次数
仁爱: 全球类
- 事件核心API
- .http 选项
- 组织
- 键
- 。访问文件夹
- .init( organizationId, apiKey, accessToken, [httpoptions]) (中文(简体) ) ⇒
Promise.<EventsCoreAPI> - .get AllProviders(消费者 OrgId, 提供者选项) ⇒
Promise.<object> - .get Provider(提供方, [fetchEventMetadata]) (中文(简体) ) ⇒
Promise.<object> - 创建 Provider( 消费者OrgId, ProjectId, 工作空间Id, 身体) ⇒
Promise.<object> - 更新 提供( 消费者 OrgId、 ProjectId、 工作空间Id、 提供者Id、 主体) ⇒
Promise.<object> - .delet Provider(消费者OrgId、项目Id、工作空间Id、供应商) (d) 国家 ⇒
Promise.<object> - .get ProviderMetadata () 数据 ⇒
Promise.<object> - .Get AllEventMetadata for Provider( 提供者) (d) 国家 ⇒
Promise.<object> - .getEventMetadata For Provider( 提供者,事件代码) ⇒
Promise.<object> - 创建 EventMetadata ForProvider( 消费者OrgId, ProjectId, 工作空间Id, 提供者Id, 机构) ⇒
Promise.<object> - .update Event Metadata For Provider(消费者OrgId, projectId, 工作空间Id, 提供者Id, 事件代码, 主体) ⇒
Promise.<object> - .deletEventMetadata(消费者OrgId、项目Id、工作空间Id、供应商Id、事件Code) ⇒
Promise.<object> - .delete AllEventMetadata(消费者OrgId、项目Id、工作空间Id、提供者) (d) 国家 ⇒
Promise.<object> - .创建注册(消费者OrgId、项目Id、工作空间Id、正文) ⇒
Promise.<object> - 更新注册(消费者OrgId、项目Id、工作空间Id、注册Id、正文) ⇒
Promise.<object> - .获得注册(消费者OrgId、项目Id、工作空间Id、注册) (d) 国家 ⇒
Promise.<object> - .get AllRegistrations For Workspace(消费者 OrgId, projectId, 工作空间) (d) 国家 ⇒
Promise.<object> - .get AllRegistrations ForOrg(消费者奥尔格德,[页]) ⇒
Promise.<object> - .删除注册(消费者OrgId、项目Id、工作空间Id、注册) (d) 国家 ⇒
Promise.<object> - .publishEvent( 云端) ⇒
Promise.<string> - .GetEvents From Journal(journalUrl, [事件Journal options], [fetchResponse headerers]) (英语) ⇒
Promise.<object> - .GetEvents Observable FromJournal (journalUrl, [eventsJournal options], [eventsJournal Polling options]) (英语) ⇒
Observable - .验证数字签名ForEvent(事件,收件人 ClientId,签名选项) ⇒
boolean
事件 CoreAPI.http 选项
Http 选项{retries, 超时}
仁爱: 实例财产 EventsCoreAPI
事件 CoreAPI.organizationId
组织从您的整合
仁爱: 实例财产 EventsCoreAPI
事件 CoreAPI.apiKey
您整合时的 api 键
仁爱: 实例财产 EventsCoreAPI
事件 CoreAPI. accessToken
JWT Token 与IO管理 API 范围整合
仁爱: 实例财产 EventsCoreAPI
事件 CoreAPI.init( organizationId, apiKey, accessToken, [httpoptions]) QQ Promise.<EventsCoreAPI>
初始化 SDK.
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<EventsCoreAPI> - 返回类事件CoreAPI的对象
| 参数 | 类型 | 说明 |
|---|---|---|
| 组织编号 | string | 组织从您的整合 |
| 键 | string | 您整合时的 api 键 |
| 访问脚本 | string | 日本 用于整合IO管理 API 范围 |
| [备选案文] | EventsCoreAPIOptions | 配置 API 调用选项 |
事件 CoreAPI. get AllProviders( 消费者 OrgId, 提供者选项) QQ Promise.<object>
获取所有提供者
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 返回提供商名单
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 提供者选项 | ProviderOptions | 提供者选项 |
事件 CoreAPI.get Provider( 提供方, [fetchEventMetadata]) QQ Promise.<object>
获取提供者
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 返回提供者 ID 指定的提供者
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
| 提供者 | string | 唯一识别要获取的提供者的 ID | |
| [牵引EventMetadata] | boolean | false | 如果您想要获取提供者的相关事件metadata, 请将此设定为真实 |
coreAPI.create Provider(消费者 OrgId, projectId, 工作空间Id, body) QQ Promise.<object>
根据提供者的细节创建新提供者
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 返回创建的提供者的细节
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 机构 | ProviderInputModel | 描述提供者的 Json 数据 |
事件 CoreAPI.update 提供(消费者OrgId, projectId, 工作空间Id, professorId, body) QQ Promise.<object>
更新 ID 和 提供者 细节
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 返回更新的提供者细节
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 提供者 | string | 唯一指定要更新的提供者的代号 |
| 机构 | ProviderInputModel | 描述提供者的 Json 数据 |
事件 CoreAPI.delete Provider(消费者 OrgId, projectId, 工作空间Id, 提供者Id) QQ Promise.<object>
删除给定 ID 的提供者
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 如果删除成功返回空对象
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 提供者 | string | 唯一指定要删除的提供者的 id |
事件 CoreAPI.get ProviderMetadata () Promise.<object>
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 返回 Org 的所有合格提供者元数据清单
事件 CoreAPI. get AllEvent Metadata For Provider( 提供商) QQ Promise.<object>
为提供者获取全部事件元数据
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 提供者的所有事件元数据清单
| 参数 | 类型 | 说明 |
|---|---|---|
| 提供者 | string | 唯一识别要获取事件元数据提供者的 ID |
事件 CoreAPI. get Event Metadata For Provider( 提供者, 事件代码) QQ Promise.<object>
获取给定提供者和事件代码的事件元数据
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 符合指定事件代码的事件元数据
| 参数 | 类型 | 说明 |
|---|---|---|
| 提供者 | string | 唯一识别要获取事件元数据提供者的 ID |
| 事件代码 | string | 要获取事件元数据细节的特定事件代码 |
coreAPI. 创建 EventMetadata For Provider( 消费者 OrgId, projectId, 工作空间Id, 提供者Id, 机构) QQ Promise.<object>
为提供者创建事件元数据
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 创建事件元数据的细节
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 提供者 | string | 添加事件元数据的提供者 |
| 机构 | EventMetadataInputModel | 描述事件元数据的 Json 数据 |
事件 CoreAPI.update Event Metadata For Provider(消费者 OrgId, projectId, 工作空间Id, 提供者Id, 事件代码, 正文) QQ Promise.<object>
更新提供者的事件元数据
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 更新事件元数据的细节
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 提供者 | string | 要更新事件元数据的提供者 |
| 事件代码 | string | 要更新的事件元数据代码 |
| 机构 | EventMetadataInputModel | 描述事件元数据的 Json 数据 |
事件 CoreAPI.deletEventMetadata(消费者 OrgId, projectId, 工作空间Id, 提供者Id, 事件Code) QQ Promise.<object>
删除提供者的事件元数据
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 如果删除成功则空出对象
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 提供者 | string | 要更新事件元数据的提供者 |
| 事件代码 | string | 要更新的事件元数据代码 |
事件 CoreAPI.delete AllEventMetadata(消费者 OrgId, projectId, 工作空间Id, 提供者Id) QQ Promise.<object>
删除提供者的所有事件元数据
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 如果删除成功则空出对象
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 提供者 | string | 要更新事件元数据的提供者 |
事件 CoreAPI. 创建注册(消费者OrgId, projectId, 工作空间Id, body) QQ Promise.<object>
创建 Webhook 或日志注册
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 创建网页记录/期刊登记的细节
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 机构 | RegistrationCreateModel | Json数据载有登记详情 |
coreAPI.update 注册(消费者OrgId, projectId,工作空间Id,注册Id,正文) QQ Promise.<object>
更新网页或日记注册
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 将更新的网页记录/期刊登记细节
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 注册编号 | string | 详细信息要获取的登记编号 |
| 机构 | RegistrationUpdateModel | Json数据载有登记详情 |
事件 CoreAPI.get 注册(消费者OrgId,项目Id,工作空间Id,注册Id) QQ Promise.<object>
获取特定注册的注册细节
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 网页记录/期刊登记详情
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 注册编号 | string | 详细信息要获取的登记编号 |
事件 CoreAPI.get AllRegistrations For Workspace(消费者OrgId, projectId, 工作空间Id) QQ Promise.<object>
获取工作空间的所有注册细节
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 所有网签/期刊登记清单
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
事件 CoreAPI.get AllRegistrations ForOrg(消费者OrgId,[页]) QQ Promise.<object>
获取 Org 的所有注册细节
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 对一个矿石的所有网页记录/期刊登记作出贴出的答复
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| [页] | Page | 页面大小和页码 |
事件 CoreAPI.delete 注册(消费者OrgId,项目Id,工作空间Id,注册Id) QQ Promise.<object>
删除 Webhook 注册
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 如果删除成功则空出对象
| 参数 | 类型 | 说明 |
|---|---|---|
| 消费者 | string | 消费者 从控制台取出 |
| 项目编号 | string | 项目 从控制台取出 |
| 工作空间Id | string | 工作空间 从控制台取出 |
| 注册编号 | string | 登记编号待删除 |
事件 CoreAPI.publishEvent(云雾Event) QQ Promise.<string>
发布云事件
事件出版商可以使用此SDK向Adobe I/O事件发布事件. 活动应遵循"云事会"1.0的规格: https://github.com/cloudevents/ spec/blob/v1.0/ spec.md 互联网档案馆的存檔,存档日期2013-12-02。 。 。 . 目前仅接受应用程序/json作为云事变"数据"领域的内容类型. 如果设定了重试,则发布事件会在网络问题,5xx和429个错误响应代码上重试.
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<string> - 在成功和失败时返回 OK/ 未定义
| 参数 | 类型 | 说明 |
|---|---|---|
| 云节 | object | 要以云态事件格式发布给事件接收者的对象 |
coreAPI.getEvents FromJournal (journalUrl, [eventsJournal options], [fetchResponse Headers]] (英语). QQ Promise.<object>
从日记中获取事件.
仁爱: 实例方法 EventsCoreAPI
回返数字 : Promise.<object> - 反应json包括事件和链接(如果有的话)
| 参数 | 类型 | 说明 |
|---|---|---|
| 日记Url | string | 要从( 需要的) 读取的日记或“ 下一步” 链接的 URL |
| [事件Journal可选 | EventsJournalOptions | 查询随 URL 发送的选项 |
| [套接字头] | boolean | 如果您想要获取完整的响应信头, 请将此设定为真实 |
coreAPI.getEvents Observable FromJournal(journalUrl, [eventsJournal options], [eventsJournal Polling options]] (中文(中国大陆) ) Observable
获取 Events 从 Journal 返回一个 RxJS 可观察
人们可以通过大量文件 RxJS 软件 为了学习更多 发挥各种作用 RxJS 运算符 对事件采取行动.
仁爱: 实例方法 EventsCoreAPI
回返数字 : Observable - 用户为倾听事件而可以订阅的可观察数据
| 参数 | 类型 | 说明 |
|---|---|---|
| 日记Url | string | 要从( 需要的) 读取的日记或“ 下一步” 链接的 URL |
| [事件Journal可选 | EventsJournalOptions | 查询随《日刊》 URL 发送的选项 |
| [事件JournalPolling可选 | EventsJournalPollingOptions | 日记投票选项 |
事件 CoreAPI. 验证 Digital Signature ForEvent( 事件, 收件人 ClientId, 签名选项) QQ boolean
通过验证数字签名验证事件
仁爱: 实例方法 EventsCoreAPI
回返数字 : boolean - 如果签名匹配, 返回真, 否则返回假
| 参数 | 类型 | 说明 |
|---|---|---|
| 事件 | * | JSON 有效载荷交付到已注册的 Webhook URL |
| 收件人客户端 | * | 从 Adobe I/O 控制台集成中检索到的目标收件人客户端 id |
| 签名选项 | * | 由 digiSignature 1 构成字段的所有数字签名头值的映射 : 从 digiSignature 2 的每个 POST 请求中从 x-adome-dignature 1 请求中取回的数字签名头值 : 从 publicKeyPath 1 请求中取回的数字签名头值 : 从 publicKeyPath 1 请求中取回的数字签名头值 : 从 publicKeyPath 2 请求中取回的 x-adome-dign-2 请求中取回的数字签名头值 |
init( organizationId, apiKey, access Token, [httpoptions]) (中文(简体) ) Promise.<EventsCoreAPI>
返回以新事件CoreAPI对象解决的保证 .
仁爱:全球职能
回返数字 : Promise.<EventsCoreAPI> - 返回类事件CoreAPI的对象
| 参数 | 类型 | 说明 |
|---|---|---|
| 组织编号 | string | 组织从您的整合 |
| 键 | string | 您整合时的 api 键 |
| 访问脚本 | string | 日本 用于整合IO管理 API 范围 |
| [备选案文] | EventsCoreAPIOptions | 配置 API 调用选项 |
事件 CoreAPI 选项 : object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| [暂停] | number | Http 请求超时( 可选) ms |
| [回顾] | number | 5xx错误情况下的复试次数. 默认 0 (可选) |
| [事件BaseURL] | string | 事件默认的基础 URL https://api.adobe.io (英语) (可选) |
| [事件入侵] | string | 事件入侵 URL 。 默认 https://eventsingress.adobe.io 互联网档案馆的存檔,存档日期2013-12-22 (可选) |
提供者选择: object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| [提供数据 编号 | string | 由提供商为消费者获取MetadataId |
| [问 题 编号 | string | 对于自注册的提供者, 实例ID 是提供者MetadataId 获取时必须完成的任务 |
| [提供者MetadataIds] | Array.<string> | 获取所有提供方( 和所有实例) , 以获取提供方元数据 ID 列表 |
提供者选项 : object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| 获取EventMetadata | boolean | 获取列表中每个提供者的事件元数据选项 |
| 过滤By | ProviderFilterOptions | 基于提供方(提供方MetadataId和实例Id)或提供方列表的提供方过滤选项 |
提供者输入模式 : object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| 标签 | string | 此事件提供者的标签 |
| [说明] | string | 事件提供者的描述 |
| [docs url] (中文(简体) ) | string | 此事件提供者的文档url |
事件元数据输入模式 : object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| 标签 | string | 事件元数据描述 |
| 说明 | string | 此事件元数据标签 |
| 事件 代码 | string | 此事件元数据的事件 代码 。 此事件 代码描述事件的类型 。 理想的情况是,它应该有一个反向DNS名称的前缀(指定定义该事件类型的语义的组织) 它相当于"云端"的类型。 见 https://github.com/cloudevents/ spec/blob/master/ spec.md#类型 互联网档案馆的存檔,存档日期2013-12-21 |
| [样本 事件 腾讯] | string | 一个可选的基础64编码事件样本模板 |
兴趣事件 : object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| 提供者( d) | string | 拟订阅活动提供者的身份证 |
| 事件 代码 | string | 请求属于提供者的有效事件代码 |
创建模式 : object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| 客户端( d) | string | 创建注册的客户端 ID |
| 名称 | string | 注册名称 |
| 说明 | string | 登记说明 |
| [webhook url] (英语) | string | 一个有效的webhook URL, 事件将交付给webhook或webhook batch 交付 类型 |
| 利息事件( o) | Array.<EventsOfInterest> | 登记要参加的活动 |
| 发送类型 | string | 交付类型可以是webhook |
| [启用] | string | 启用或禁用注册 。 默认真实. |
登记最新模式 : object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| 名称 | string | 注册名称 |
| 说明 | string | 登记说明 |
| [webhook url] (英语) | string | 一个有效的webhook URL, 事件将交付给webhook或webhook batch 交付 类型 |
| 利息事件( o) | Array.<EventsOfInterest> | 登记要参加的活动 |
| 发送类型 | string | 交付类型可以是webhook |
| [启用] | string | 启用或禁用注册 。 默认真实. |
页: 1 object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| [页] | number | 要获取的页码。 默认 0 (可选) |
| [大小] | number | 每个页面的大小。 默认 10 (可选) |
事件周刊选项 : object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| [最近 | boolean | 获取最近的事件( 可选) |
| [自 | string | 开始获取事件的位置( 可选) |
| [限制] | number | 要检索的最大事件数( 可选) |
事件 object
仁爱: 全局类型def
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| [间 | number | * 进行内部调查,以了解期刊内容; 如果不提供,则使用默认值(可选) |
除错日志
LOG_LEVEL=debug <your_call_here>
预留 LOG_LEVEL 环境变量和 debug 值到引用您函数的调用,在命令行上。 这将为您的 SDK 电话输出大量调试数据 .
捐款
欢迎捐款! 读取 贡献指南 更多信息.
许可证发放
这个项目根据Apache V2许可证获得许可. 见 自由主义 更多信息.