# 如何逐步将应用程序连接到ShareAI Builder

构建一个预约应用程序，将客户连接到 ShareAI，准备有用的 AI 议程，并让他们掌控 AI 支出。

45–60 分钟 · 18 实用步骤 · 应用程序构建者 · Node.js 示例

您的实施

## 您可以持续构建的客户连接。

三个具体交付成果：连接客户，准备他们的预约，并使集成准备好进行验证。

### 登录和可续订会话

客户选择其 ShareAI 账户，批准您的应用程序并返回到 JamZY。

**您可以在以下情况下验证它**

成功登录、刷新会话并断开连接。

### 一个有用的准备草案

通过有计划的 AI 请求，将预约目标转化为议程和问题。

**您可以在以下情况下验证它**

生成草案；保存预约不会调用 AI。

### 您可以验证的设置

解释可选的 AI 费用，并收集您的审核提交所需的平台检查。

**您可以在以下情况下验证它**

每个包含的平台和请求的范围都记录了检查。

## 查看您将构建的内容

您将建立一个客户可以理解的连接：他们的 ShareAI 账户、一个可选的 AI 准备草稿，以及一个清晰的路径返回到他们的预约。

您的工作地点 您完成的示例

将您的应用程序连接到 ShareAI Builder，从注册到经过测试的集成并准备审核。本教程使用 JamZY，一个小型 Node.js 预约应用程序，展示每个步骤：注册应用程序、配置其 Web 平台、连接客户的 ShareAI 账户并发送授权的 AI 请求。将相同的步骤应用到您自己的产品。

| 功能 | 客户同意的内容 | JamZY 展示的内容 |
| --- | --- | --- |
| 使用 ShareAI 登录 | 一个账户连接以及您的应用程序请求的身份信息。 | 从经过身份验证的用户信息中获取的私人客户身份。 |
| 使用 ShareAI 支付 · AI 使用 | 使用客户选择的个人或组织账户进行授权推理。 | 由该账户的合格积分资助的预约准备草稿。 |
| Builder 加价 | 在已接受的应用程序合同中额外的 AI 使用费用。 | 可选的使用货币化，在批准和合同发布后。 |
| 产品付款 | 在单独的 ShareAI 结账中展示的特定购买。 | 在扩展中解释 [付款教程](https://shareai.now/blogs/product/builder-program/guides-how-to/pay-with-shareai/)。预约演示不实施结账。 |

拥有一个 ShareAI 账户、使用将拥有应用程序的个人或组织账户的权限、一个公共 HTTPS 回调、一个徽标以及有效的隐私、条款和账户删除页面。要运行示例，请使用 Node.js 22 或更新版本以及您的应用程序的 HTTPS 地址。

JamZY · 预约参考应用程序 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2phbXp5LnBuZw.DZt_5dnvNF40T34-7MJsXw?v=219eca92cbe5)

本地预约安排和客户资助的 AI 准备是独立的操作。此演示不会发送日历邀请。

1. 选择预约类型和时长。
2. 选择一个可用的演示时间段。
3. 连接 ShareAI 以使用可选的 AI 助手。
4. AI 仅在此明确操作后运行；仅预订不会调用 ShareAI。

**使用您自己的应用程序详细信息**

截图使用示例应用程序详细信息。ShareAI 在本指南中的地址是生产地址。生成准备会发起真实的AI请求并可能消耗积分；选择或保存演示预约不会。验证检查由您自己的成功集成测试完成。

**当您准备继续时**

您可以区分账户登录、AI消耗、可选附加费和确认的产品购买。阅读本指南不需要付费请求。

## 加入 Builder Program

您将创建拥有您的应用程序及其客户关系的Builder身份。

您的工作地点 控制台 → Builder Program

1. 创建或登录您的 ShareAI 账户。选择将拥有 JamZY 的个人或组织账户；在整个设置过程中使用相同的账户。
2. 打开 [控制台中的 Builder Program ShareAI](https://console.shareai.now/app/builder/)选择与您的工作匹配的Builder活动。对于本指南，请选择您拥有的应用程序的产品公司路径。客户工作适用于交付给客户的服务；集成连接现有应用程序。
3. 在申请之前，选择将拥有项目注册的个人或组织账户。组织可以在验证之前提交申请，但仅有员工批准并不能激活访问权限。通过控制台中的入职清单完成组织邮箱和公司验证。已批准的组织在两项检查完成之前仍处于“待验证”状态。Builder、Provider 和 Creator 项目遵循此规则。
4. 接受后，打开 Builder Program → Product。角色切换器标识您正在编辑的账户。

Builder Program · 注册入口点 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2Vucm9sbG1lbnQucG5n.qBq2qLDjzgk2_IqYv0zTco?v=2e8bf9ef5454)

从产品路径开始，然后完成将拥有 JamZY 的账户的注册。

1. 继续到 Console 注册 Builder Program。

**当您准备继续时**

Builder Program 为预期所有者打开并提供“新应用”。注册决策、应用审核、公共信息审核和 Monetization Gateway 批准是独立的步骤。

需要详细信息？[Builder Program ↗](https://shareai.now/builders/join/)[Builder 文档 ↗](https://shareai.now/docs/builders/)

## 创建您的申请

您将为 JamZY 提供其自己的应用程序记录，以便其身份、访问权限和商业条款保持一致。

您的工作地点 Builder Program → 产品 → 新应用

1. 在 Product 中，选择 New app。输入您的公共网站以填充初始详细信息，或选择我将手动填写。
2. 上传 PNG 或 JPEG 格式的徽标，输入 JamZY 作为名称，并用一句清晰的句子描述产品。查看网站和Builder联系电子邮件。
3. 继续进入设置问题。保持答案真实：它们描述了应用程序的交付和支付方式。

应用程序设置 · 详细信息 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2NyZWF0ZS1hcHAucG5n.26JD5PFhP3AdM9h-QLR4jI?v=89dd90b67cd9)

在继续之前查看应用程序名称、简介、徽标和公共网站。联系信息仅供参考。

1. 给应用程序一个清晰的名称。
2. 继续回答入职问题。

使用可访问的公共网站作为应用程序简介。即使您的开发回调已正确注册，私人或仅限本地的网站可能会导致验证失败。新应用程序以草稿形式开始。您可以继续编辑而无需将其公开。其应用程序标识符不同于 OAuth 客户端 ID 或订阅 ID。

**当您准备继续时**

JamZY 出现在产品下，供预期所有者使用。不要为每个设备平台创建额外的应用程序。

需要详细信息？[注册参考 ↗](https://shareai.now/docs/api/builders/auth/register-application/)[公共展示指南 ↗](https://shareai.now/application-guidance/)

## 描述您的应用程序如何交付

您将获得适合您的应用运行位置以及谁控制其凭据的 OAuth 选项。

您的工作地点 新应用 → 应用程序设置

对于您自行操作的 JamZY 部署，请选择与您的产品提供相匹配的定价模型，例如 SaaS、供应商托管的云应用程序、客户自行支付其使用费用，以及用于 AI 请求的 ShareAI。这些是示例答案，并非每个产品的要求。

应用程序设置 · 部署 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2RlcGxveW1lbnQucG5n.z2CCFEuD_5FSexYeMPd83A?v=a4e84e4528c3)

入职答案决定是否可以获得服务器客户端密钥。

1. 选择您的应用程序实际运行的位置。

| 应用程序运行位置 | OAuth 选项 | 凭据存储位置 |
| --- | --- | --- |
| 您托管的后端 | Web 服务器客户端可以使用客户端密钥。PKCE 仍然适用。 | 密钥和令牌保留在您的服务器上。 |
| 浏览器应用程序 / SPA | 使用 PKCE 的公共 Web 客户端。 | 无嵌入式客户端密钥。使用适当的浏览器或后端会话设计。 |
| 自托管或混合分发 | 根据入门策略，使用 PKCE 的公共客户端。 | 不要将共享的供应商密钥分发到客户安装中。 |
| Windows、macOS、Linux、Android 或 iOS | 每个启用的平台都有一个公共客户端。 | PKCE 和适合平台的安全存储；无捆绑密钥。 |

可下载的 JamZY 示例故意使用带有 PKCE 的公共 Web 客户端，即使它有一个小型后端。服务器将令牌保存在浏览器存储之外。供应商托管的答案允许服务器客户端；它不会强制您选择一个。

您可以在“应用程序信息 → 应用程序设置”下重新访问已保存的答案。部署更改可能会移除不兼容的客户端密钥，并需要重复验证。在保存之前，请检查其影响。

**当您准备继续时**

已保存的部署描述了您的实际架构。客户端密钥选项遵循该答案；禁用的选项是对策略的解释，而不是缺少凭据。

需要详细信息？[客户端注册 ↗](https://shareai.now/docs/api/builders/auth/register-application/)

## 清晰介绍您的应用程序

您将向客户提供他们在决定连接之前所需的产品详细信息和政策。

您的工作地点 应用程序信息

在仪表板之后打开应用程序信息。按照专用部分逐步操作：详细信息、应用程序设置、展示、品牌、画廊和审核。为产品提供有用的描述、准确的网站以及清晰的客户工作流程截图。

应用程序信息 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2luZm9ybWF0aW9uLnBuZw.gTT43COTCGPlcpxLYXCMCb?v=0ed11c1d57c9)

为您的应用程序命名、介绍并提供公共 HTTPS 网站。

1. 在各自的部分中开发详细信息、设置、展示和品牌。

使用您自己的应用程序标识。ShareAI 品牌应出现在集成按钮和说明材料上；它不应替代您的产品徽标。确保隐私、条款和删除链接在无需登录的情况下可访问。

当浮动保存操作出现时保存更改。公共信息提案有其自己的审核；编辑已批准的提案不会静默替换实时公共展示。

**当您准备继续时**

访问者可以了解 JamZY 的功能、运营者以及如何请求删除。公共详细信息和回调配置指向同一产品。

需要详细信息？[展示检查清单 ↗](https://shareai.now/application-guidance/)[徽标 & 按钮使用 ↗](https://shareai.now/brand-guidance/)

## 选择客户可以授权的内容

您将请求您的预约体验实际使用的访问权限，并明确其计费用途。

您的工作地点 应用程序 → 用例

在用例中，启用 ShareAI 登录以进行账户连接，并启用 Pay with ShareAI 以支持您计划支持的客户资助流程。仅在您的产品将在 AI 使用上赚取额外费用时请求 Monetization Gateway 访问。请遵循 Console 中显示的审批状态。

用例 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL3VzZS1jYXNlcy5wbmc.zRU3Lp1TsQuYD7ClWUWS-X?v=090d8c81e6da)

Log-in with ShareAI、Pay with ShareAI 和 Monetization Gateway 拥有独立的配置和审批状态。

1. 使用 ShareAI 配置登录。
2. 启用客户资助的使用。

| 范围 | 您请求它的原因 |
| --- | --- |
| `openid` | 使用其客户端范围的身份连接账户。 |
| `profile` / `email` | 仅当您的产品需要时，请求个人资料或电子邮件声明。 |
| `inference` | 在应用程序配置允许的情况下调用支持的 AI 推理端点。 |
| `monetization_gateway` | 使用客户接受的 AI 计费协议进行附加费推理。 |
| `payments` | 创建并检查客户付款请求。每次购买仍需确认。 |

JamZY 请求 `openid profile inference monetization_gateway`它不请求 `payments` 并且不会通过结账销售产品。在 Console 中启用某项功能并不会将其授予现有的访问令牌：客户必须授权范围和条款。

**当您准备继续时**

功能、配置的范围和授权请求一致。避免请求您的应用程序从未使用或无法验证的可选访问权限。

需要详细信息？[范围参考 ↗](https://shareai.now/docs/api/builders/auth/scopes/)[支付 & 附加费操作指南 ↗](https://shareai.now/blogs/product/builder-program/guides-how-to/pay-with-shareai/)

## 设置您的 Web 集成

您将为基于浏览器的 JamZY 体验创建一个 Web 客户端，并使用正确的身份验证方法。

您的工作地点 OAuth 设置 → Web

1. 打开 OAuth 设置。从平台网格中选择 Web。您可以为每个平台配置一个客户端：Web、Windows、macOS、Linux、Android 和 iOS。
2. 对于此示例，选择浏览器应用程序 / SPA，即公共 PKCE 客户端。仅当您的部署策略允许并且您的后端可以保护密钥时，服务器 Web 应用程序才适用。
3. 复制您自己的 Web 客户端 ID。在集成时将平台保持在测试状态。切勿从截图中复制 ID 或将共享演示的注册用于不同的产品。

OAuth 设置 · 平台网格 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL3BsYXRmb3Jtcy5wbmc.d1VzRklfuF_87b8KTVlPjn?v=1412f421168b)

每个平台一个注册客户端。未配置的平台保持可选。

1. 打开单一的 Web 集成。
2. 仅在您的产品支持时添加 Android。

Web · 概览 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL3dlYi1jbGllbnQucG5n.AQKecrfiIFG89MpuUlH8uP?v=8f56b706ab2d)

公共 Web 客户端使用 PKCE 且没有客户端密钥。客户端 ID 被隐藏。

1. 复制您自己的 Web 客户端 ID。
2. 公共客户端不会接收密钥。

不同的平台具有不同的凭据和回调规则。它们不是单独的产品：订阅和客户管理在应用程序中是聚合的。应用程序测试人员在平台之间共享，最多包括五个位置（包括待处理的邀请）；所有者不会占用测试人员位置。

**当您准备继续时**

仅存在一个 Web 平台。您尚未配置的本地平台不会阻止您的启动。

需要详细信息？[平台注册 ↗](https://shareai.now/docs/api/builders/auth/register-application/)

## 将客户带回您的应用程序

在授权后，您将客户返回到您的应用程序，使用您拥有的精确回调地址。

您的工作地点 Web → 配置

在 Web → 配置中，注册您的应用程序处理的精确 HTTPS 回调地址。本指南使用 `https://jamzy.example/oauth/callback` 作为示例。将 `jamzy.example` 替换为您部署 JamZY 副本的 HTTPS 域名，并在您的应用程序配置中使用相同的回调地址。

Web · 配置 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2NhbGxiYWNrcy5wbmc.VYHbGU1Skc_78NvwYGAAz5?v=6af56597b3d7)

注册您的已部署应用程序处理的回调。

1. 注册您的已部署应用程序处理的回调。

提供同意屏幕名称、条款、隐私和删除信息。仅启用您需要的范围，然后保存。方案、主机、路径和适用的查询详细信息必须与授权请求和代码交换匹配。不要使用通配符或 URL 片段。

| 平台 | 实现的回调 |
| --- | --- |
| Web | 您应用程序上的确切 HTTPS 地址。 |
| Android | 与应用程序 ID 匹配的反向域名应用程序方案，或带有包名和 SHA-256 签名指纹的已验证 HTTPS 应用链接。 |
| iOS | 匹配的应用程序方案，或带有包 ID 和 Apple App ID 前缀的已验证 HTTPS 通用链接。 |
| Windows / macOS / Linux | 允许的确切 HTTPS 回调、匹配的反向域名应用程序方案，或支持的 127.0.0.1 / \[::1\] 上的环回重定向。环回端口可能会有所不同。 |

已安装的应用程序在系统浏览器中授权并通过注册的回调返回。对于声明的 HTTPS 应用链接，请发布所需的关联文件并在控制台中运行关联验证。表单中看似合理的回调并不能证明您的已安装应用程序接收了它。

**当您准备继续时**

通过授权流程打开回调会返回到您的应用程序。随机代码或状态不匹配将被拒绝。

需要详细信息？[PKCE & 重定向 ↗](https://shareai.now/docs/api/builders/auth/authorization-code-pkce/)[发现 & 身份 ↗](https://shareai.now/docs/api/builders/auth/identity-discovery/)

## 运行您自己的 JamZY 应用程序

您将拥有预约界面及其 ShareAI 连接，与您自己的应用程序标识符一起运行。

您的工作地点 您的应用程序 → 环境配置

JamZY 是一个带有可选 AI 准备助手的预约应用程序。其调度程序仅为浏览器演示：没有日历提供商、电子邮件发送或预约付款。ShareAI 授权和 AI API 集成使用真实配置的上游。

下载 [JamZY 参考源代码](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2phbXp5LXJlZmVyZW5jZS56aXA.jOyG9kwmFZrdMQEhTNGl0J?v=248a37ba4612)。它包含 Node 服务器、浏览器 UI、测试和设置 README；没有证书、密钥、依赖项或会话。在运行之前请审查文件。将 Node 进程置于保留公共源的 HTTPS 反向代理之后。

```bash
# .env — replace both identifiers with YOUR registered application.
JAMZY_PUBLIC_ORIGIN=https://jamzy.example
SHAREAI_CLIENT_ID=YOUR_WEB_CLIENT_ID
SHAREAI_APP_ID=YOUR_APPLICATION_UUID
SHAREAI_AUTH_ORIGIN=https://auth.shareai.now
SHAREAI_API_BASE_URL=https://api.shareai.now/api/v1
SHAREAI_SCOPES="openid profile inference monetization_gateway"
PORT=3443
BIND_HOST=127.0.0.1
```

```bash
# Node 22+, behind your HTTPS reverse proxy
node --env-file=.env server.mjs

# Mocked upstream tests; these do not spend credits
node --test test/server.test.mjs
```

**保持环境一致**

在以下位置创建您的应用程序 [控制台.shareai.now](https://console.shareai.now/app/builder/)。使用其生产客户端 ID 与 `https://auth.shareai.now` 和 `https://api.shareai.now/api/v1`。该 `jamzy.example` 地址是您应用程序的占位符，而不是托管演示。通过 HTTPS 提供您自己的应用程序，以便其安全会话 cookie 能正常工作。

JamZY 还提供了一个 API 密钥连接以供比较。本教程使用钱包/OAuth 按钮。API 密钥不会建立客户的 JamZY OAuth 协议，并不能替代客户授权流程。

**当您准备继续时**

应用程序通过 HTTPS 加载。其公共源、注册回调和客户端 ID 与您的注册匹配。页面源或 localStorage 中不会出现令牌或密钥。

## 连接您的第一个客户

您将允许客户选择其 ShareAI 帐户并批准您的应用程序所需的访问权限。

您的工作地点 JamZY → 使用您的 ShareAI 钱包支付

从 JamZY 中选择使用您的 ShareAI 钱包支付。应用程序会打开 ShareAI 授权页面。客户登录，选择个人或组织帐户，检查应用程序和请求的访问权限，并接受适用的订阅条款。

1. **JamZY → 授权**创建一个随机状态和一个PKCE验证器；在授权请求中发送其S256挑战。
2. **客户 → 授权**选择支付账户并查看访问权限和计费条款。取消操作必须使JamZY断开连接。
3. **授权 → 回调**接收一个短时有效的一次性代码和状态。根据相同的会话验证状态。
4. **后端 → 令牌**使用原始验证器和相同的重定向URI交换该代码。公共客户端不发送客户端密钥。
5. **后端 → 用户信息**使用访问令牌读取已认证的身份，然后建立JamZY自己的安全会话。

Web · 生产端点 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2VuZHBvaW50cy5wbmc.wcHciknhu_5PQG6wrO4zan?v=63ad6d9e8724)

使用这些生产ShareAI地址与来自 console.shareai.now 的客户端 ID。

1. 在 auth.shareai.now/oauth/authorize 授权。
2. 在 auth.shareai.now/oauth/token 交换代码和刷新令牌。

```javascript
const verifier = randomBytes(32).toString('base64url');
const state = randomBytes(32).toString('base64url');
const challenge = createHash('sha256').update(verifier).digest('base64url');
const authorize = new URL('https://auth.shareai.now/oauth/authorize');
authorize.search = new URLSearchParams({
  client_id: clientId, response_type: 'code', redirect_uri: callback,
  scope: 'openid profile inference monetization_gateway', state,
  code_challenge: challenge, code_challenge_method: 'S256',
}).toString();
// Save state + verifier in the server session BEFORE redirecting.
// The downloadable server implements state expiry and one-time consumption.
```

根据经过认证的、客户端范围的客户记录进行键控 `sub` 以及其发行者/客户端上下文。个人和组织授权可以选择不同的支付账户。客户ID不是全局用户ID、电子邮件地址或内部组织数据库ID。不要通过匹配显示名称跨平台合并身份。

**当您准备继续时**

取消、不匹配的状态、重放代码和过期授权会安全失败。正常流程返回一个已认证账户而不暴露其令牌。

需要详细信息？[完成代码交换 ↗](https://shareai.now/docs/api/builders/auth/authorization-code-pkce/)[私人客户身份 ↗](https://shareai.now/docs/api/builders/auth/pairwise-identities/)

## 安全地保持客户连接

您将保持授权请求在令牌过期时正常工作，同时为客户提供可靠的断开方式。

您的工作地点 您的应用程序 → 会话和令牌处理

| 凭证 | 目的 | 如何处理 |
| --- | --- | --- |
| 授权代码 | 从授权页面的一次性交接。 | 使用匹配的验证器和回调交换一次。它不是API令牌。 |
| 访问令牌 | 在接受的授权和范围内授权API调用。 | 发送为 `Authorization: Bearer …`。尊重过期时间和端点授权错误。 |
| 刷新令牌 | 在授权仍然有效的情况下，无需再次登录即可获取替换的访问令牌。 | 安全存储。序列化刷新操作并以原子方式替换旋转的凭证。 |
| ID令牌 | 客户端的OpenID Connect身份声明。 | 如果使用它，请验证签名、发行者、受众、过期时间和随机数等适用项。不要将其用作推断的Bearer令牌。 |
| 客户端密钥 | 验证允许的机密服务器客户端。 | 存储在服务器上。它不同于所有令牌，且绝不会捆绑在公共客户端中。 |

```bash
# Public client refresh; run on a trusted terminal with scoped test credentials.
curl --fail-with-body 'https://auth.shareai.now/oauth/token' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=refresh_token' \
  --data-urlencode "client_id=$SHAREAI_CLIENT_ID" \
  --data-urlencode "refresh_token=$SHAREAI_REFRESH_TOKEN"
```

使用返回的 `expires_in` 而不是自行设定生命周期。如果刷新返回替换的刷新令牌，请将其与新的访问令牌作为一次更新持久化。允许每个会话进行一次刷新，以便并发请求不会重复使用旋转的令牌。无效或撤销的刷新授权需要重新连接；不要无限循环。

刷新不能添加范围或静默接受新的 Monetization Gateway 合同。对于新的权限或条款，请再次通过授权流程引导客户。JamZY 仅在服务器内存中存储凭据，最长为一小时的演示会话，验证用户信息而不是信任未经验证的 ID 令牌，并使用安全的 HttpOnly SameSite Cookie。生产服务需要其自身持久且受保护的会话设计。

在断开连接时，撤销刷新/访问凭据（如适用）并清除应用程序会话。仅清除浏览器cookie并不会撤销ShareAI授权或取消付费订阅。避免记录代码、令牌、密钥或个人提示内容。

**当您准备继续时**

到期触发一次受控刷新；新令牌替换旧令牌。断开连接清除应用程序会话并报告任何撤销失败。

需要详细信息？[刷新 & 轮换 ↗](https://shareai.now/docs/api/builders/auth/refresh-tokens/)[撤销 & 内省 ↗](https://shareai.now/docs/api/builders/auth/revoke-introspect/)[用户信息 & 发现 ↗](https://shareai.now/docs/api/builders/auth/identity-discovery/)[OAuth 安全最佳实践 ↗](https://www.rfc-editor.org/rfc/rfc9700.html)

## 准备与 AI 的首次预约

您将把预约目标转化为议程和有用的问题，并明确提出客户资助的 AI 请求。

您的工作地点 可用模型 → JamZY → 做好准备

在应用程序中打开可用模型。选择您的产品将提供的模型和提供商，并保存配置。如果目录无法加载，请在继续之前解决上游可用性错误；反复更改 OAuth 客户端无法修复此问题。

可用模型 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL21vZGVscy5wbmc.PXvmpf7nx9UhAHYgLQ8HHi?v=7c62a7dcb41c)

选择您的客户可以使用的模型和提供商。在继续之前解决任何目录错误。

1. 模型目录属于此应用程序。

JamZY 仅在连接后加载其目录。选择一个允许的文本模型，输入一个简短的预约目标，并有意选择生成准备。所选账户需要符合条件的积分以及任何必要的已接受 AI 计费条款。选择日期、查看预约并保存不会发送推理请求。

```bash
curl --fail-with-body 'https://api.shareai.now/api/v1/chat/completions' \
  -H "Authorization: Bearer $SHAREAI_ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  --data '{"model":"YOUR_ENABLED_MODEL_SLUG","messages":[{"role":"user","content":"Create a short agenda and three questions for a 15-minute appointment about planning a booking app."}],"stream":false,"max_tokens":192}'
```

### 在 JamZY 中按照预约流程操作。

1. 在“日程安排”中，选择一项服务：15 分钟的介绍、30 分钟的项目规划或 60 分钟的深入对话。
2. 选择一天和一个可用时间。时间使用浏览器显示的时区。可用性仅供参考，保存的预约仅影响此浏览器。
3. 在“做好准备”中，输入一个不包含个人信息的示例目标。选择一个模型，然后选择生成准备。JamZY 将所选服务和您的目标发送到 ShareAI，安全地呈现返回的文本，并保持预订不变。
4. 自行查看议程。选择“查看预约”，检查其服务、日期、时间和持续时间，然后确认演示预约。此操作不会调用 AI 或进行支付。
5. 打开“我的预约”以查看保存的演示记录。重新加载以确认其持久性，或将其删除以再次使该时间段可用。仅存储服务、日期、时间和随机本地参考；AI 草稿、目标、令牌和密钥不会与预约一起保存。

在保存此仅限浏览器的演示预约之前，查看服务、日期、时间和时长。 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2phbXp5LXJldmlldy5wbmc.77e3cMlfs1G-t-jYrNxzoI?v=dcf04d3d6647)

在保存此仅限浏览器的演示预约之前，查看服务、日期、时间和时长。

1. 在确认之前查看完整选择。
2. 此操作保存一个演示记录；它既不调用 AI 也不收取费用。

我的预约显示本地演示记录。删除记录会使其示例时间段再次可用。 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2phbXp5LWFwcG9pbnRtZW50cy5wbmc.KGiTkFaDpNeep2RKpzxHNE?v=1d5bce9412c4)

我的预约显示本地演示记录。删除记录会使其示例时间段再次可用。

1. 记录保存在此浏览器中，不包含个人详细信息或 AI 备注。
2. 删除演示预约并释放其时间段。

一个真正的日程安排产品需要服务器端的预订存储、可用性检查、时区处理、取消政策以及日历或通知集成。这些与 ShareAI 授权是分开的。将 AI 输出作为建议；通过您自己的应用程序规则验证任何未来的预订操作。

使用由许可目录返回的模型标识符。处理实际的响应契约：JamZY 支持 ShareAI 的原生 `message.content` 信封和 OpenAI 风格 `choices[0].message.content`。HTTP 200 带有不完整或嵌套的错误响应并不是成功的回复。

在支出限制或信用不足的响应中，显示有用的解释和提供的客户账单链接。保留所选账户。不要绕过其限制、静默切换付款方或在循环中重试已收费的操作。

**当您准备继续时**

生成的准备返回一个可用的议程和问题。请求归因于授权的客户和应用程序，包含所选模型和已接受的条款。AI 草稿无法预订或更改预约。

需要详细信息？[OAuth 聊天请求 ↗](https://shareai.now/docs/api/builders/chat-completions/chat-with-oauth/)[账单恢复 ↗](https://shareai.now/docs/api/builders/billing-errors-and-spending-limits/)

## 设置您的可选 AI 收益

您将在订阅报价中解释额外的 AI 费用，并发布客户可以接受的条款。

您的工作地点 应用程序 → 订阅

如果尚未获得适用的管理政策批准，请通过应用的用例请求 Monetization Gateway 访问。完成问卷并关注其状态。批准后可进行配置；客户权限和账单同意仍然是独立的。

订阅 · 概览 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL3N1YnNjcmlwdGlvbnMucG5n.1fAD7CKPa38_SZFh5zuI9P?v=f1ef4ee6680b)

新应用程序在开始时没有发布的合同。在发布条款之前添加一个报价。

1. 在其专属编辑器中创建一个报价。

1. 打开订阅。添加一个优惠，为其命名并描述客户将支付的 Builder 加价。生成的订阅 ID 是只读的，并限定于此应用；当您的集成需要时，请复制它。
2. 在其专属编辑器中编辑每个订阅。使用估算功能检查所选模型和使用假设的网络成本和您的收益。估算是预览，不是保证价格或已接受的条款。
3. 一起审查草稿，然后在满足其要求时发布合同版本。发布的版本描述了新客户可以接受的内容。
4. 使用概览和合同分发查看每个已接受版本中剩余的账户数量。客户会保留已接受的条款，直到他们明确接受替代条款；发布新版本不会默默地迁移他们。保留默认的过渡以保留已接受的合同。如果您有意选择在进一步的应用程序操作之前要求重新同意，现有访问权限可能会被中断，直到客户批准新条款。

仅作示例：对 €1.00 的符合条件的网络费用加收 20% 的 Builder 加价，会产生 €0.20 的加价收入。按 Standard 定价，ShareAI 的 5% 费用仅从这 €0.20 的加价中收取，另计任何应付的 Event Ingestion 费用。实际金额应以实时估算器和客户已接受的合同为准。此流程中的订阅方案是一份 AI 计费协议；仅连接账户不会扣除固定的周期性费用。

订阅 · 报价编辑器 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL3N1YnNjcmlwdGlvbi1lZGl0b3IucG5n.ajS-FCMdefa7Br_i-9U6yV?v=028a19d93ad7)

一个示例性草稿报价。其生成的订阅 ID 是只读的，并限定于此应用程序。

1. 使用面向客户的报价名称。
2. 为此报价设置 AI `surcharge`。

ShareAI 同意屏幕是接受条款的权威来源。JamZY 的公共客户端无法从用户信息推断出已接受的计费计划，因此其连接面板不会声称有活动订阅或为预约虚构价格。

**当您准备继续时**

该报价解释了费用；客户可以接受合同。您了解哪些客户仍然使用旧条款以及原因。

需要详细信息？[完整的货币化操作指南 ↗](https://shareai.now/blogs/product/builder-program/guides-how-to/pay-with-shareai/)[已接受的协议 ↗](https://shareai.now/docs/api/builders/auth/billing-agreements/)

## 证明所包含的平台有效

您将收集提交应用程序审核所需的真实端点和范围检查。

您的工作地点 OAuth 设置 → 测试人员和验证

打开 OAuth 设置 → 测试人员并邀请最多五名应用程序范围的测试人员。待处理的邀请会占用一个名额，但不会授予访问权限；接收者必须接受邀请。所有者访问权限和受邀测试人员访问权限与公共生产访问权限不同。

应用程序测试人员 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL3Rlc3RlcnMucG5n.3_3h6Y0TjTv3r0ttIn9bok?v=60cba368b3d5)

单个测试人员名单服务于所有平台。待处理的邀请计入五个名额限制。

1. 五个名额由整个应用程序共享。
2. 在此邀请测试人员，然后等待他们接受。

Web · 验证 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL3ZlcmlmaWNhdGlvbi5wbmc.xLD6z4RV0ddX6p0qkaLhqc?v=d758a8f881d9)

新的集成在记录到实际成功调用之前显示为待检查状态。本参考草稿尚未通过审核。

1. 控制台记录实际端点成功。
2. 每个请求的范围也必须被使用。

对于您打算发布的每个平台，打开验证。为所需端点和每个配置的范围完成真实成功调用。检查发现和签名密钥；测试授权/回调、代码交换、刷新、已认证的用户信息和撤销。机密客户端还必须测试适用的内省。需要关联验证的本地声明 HTTPS 链接。

配置文件/电子邮件范围需要其实际返回的声明；使用需要电子邮件的个人测试账户。`inference` 和 `monetization_gateway` 范围需要完成授权的 AI 请求。支付需要成功的范围支付 API 调用。通用的成功 HTTP 响应、浏览器截图或手动检查表不能替代 Console 的记录检查。

对于未完成的平台，您有三个选择：完成并验证它，将其排除在发布之外以便仅限所有者/测试人员使用，或将其移除。不要包含未执行回调或范围的平台。配置更改可能会使检查无效，因此在最终更改后刷新记录状态。

**当您准备继续时**

每个包含的平台显示所需的配置、端点和范围检查为完成状态。指南的个人检查表仅作为阅读辅助。

需要详细信息？[端点验证 ↗](https://shareai.now/docs/api/builders/auth/revoke-introspect/)[启动参考 ↗](https://shareai.now/docs/builders/applications/launch-application/)

## 提交您的应用程序并跟踪其客户

您将了解哪些内容已准备好进行审核，发布的工作原理以及之后在哪里跟踪客户访问。

您的工作地点 应用程序 → 仪表板

1. 返回仪表板并解决每个未完成的操作。在应用程序及所有包含的平台满足其要求之前，审核提交必须保持不可用。
2. 提交申请以供ShareAI审核。在仪表板和活动与决策中跟踪审核结果及任何要求的更改。公开展示和货币化网关请求可能会有单独的决策。.
3. 审核通过后，使用可用的发布控件发布应用程序。确认包含的平台已准备好投入生产；未包含的平台仍处于测试中。
4. 打开 Customers 以管理应用程序级别的账户，打开 Subscriptions 以进行已接受合同的分发。Analytics 帮助您跟踪归因的 AI 使用情况和收益。客户标识符在适当的客户/授权上下文中保持私密。

Dashboard · 启动准备情况 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2Rhc2hib2FyZC5wbmc.2hIAeRjQpgXmhBWVPD5_zB?v=38be9c6d668e)

在应用程序和包含的平台有未完成的要求时，审核将保持阻止状态。

1. 在提交审核之前解决所需的操作。

客户 [放大截图 ↗](https://shareai.now/shareai-assets/L3dwLWNvbnRlbnQvdGhlbWVzL3NoYXJlYWktZnJvbnRlbmQtdGhlbWUvYXBwL21vZHVsZXMvZ3VpZGFuY2UvYXNzZXRzL2N1c3RvbWVycy5wbmc.qbIDq-R5JMA6K48ws4kWaB?v=cc0470083fec)

应用程序视图将关联账户汇总在一起，但不会显示内部组织数据库 ID。

1. 客户管理被汇总到应用程序中。

在上线后与一个符合条件的客户再次尝试整个流程：连接、检查账户和同意、生成简短的预约准备草稿、安全刷新、处理账单失败，然后断开连接。验证实际用户体验，而不是假设成功保存就证明其有效。

**当某些功能无法正常工作时**

**回调不匹配：** 精确比较注册的 URL 和两个请求值。 **未授权的测试者：** 确认邀请接受和所选账户。 **缺少范围或合同：** 仅请求启用的访问权限并重新连接以接受。 **无模型：** 检查可用模型和提供商限制。 **刷新失败：** 清除失败的本地会话并重新连接。 **审查被阻止：** 检查平台验证，而不是创建另一个OAuth客户端。

**当您准备继续时**

应用程序适用于目标客户，记录的验证支持其发布状态，客户可以控制或撤销授权。

需要详细信息？[继续：使用 ShareAI 付款 ↗](https://shareai.now/blogs/product/builder-program/guides-how-to/pay-with-shareai/)[Builder API参考 ↗](https://shareai.now/docs/api/builders/)

## 组织验证和计划访问

在申请之前，选择将拥有项目注册的个人或组织账户。组织可以在验证之前提交申请，但仅有员工批准并不能激活访问权限。通过控制台中的入职清单完成组织邮箱和公司验证。已批准的组织在两项检查完成之前仍处于“待验证”状态。Builder、Provider 和 Creator 项目遵循此规则。

[查看 Monetization Gateway 定价](https://shareai.now/zh/%e6%9e%84%e5%bb%ba%e8%80%85/%e7%9b%88%e5%88%a9%e7%bd%91%e5%85%b3/#mg-pricing) · [探索 ShareAI for Startups](https://shareai.now/zh/%e5%88%9d%e5%88%9b%e8%ae%a1%e5%88%92/) · [范围和权限](https://shareai.now/zh/%e6%96%87%e6%a1%a3/api/%e6%9e%84%e5%bb%ba%e8%80%85/%e8%ae%a4%e8%af%81/%e8%8c%83%e5%9b%b4/)

## 权限和接受的条款

您的公共条款和条件、隐私政策和删除说明必须与应用匹配，并且无需登录即可访问。ShareAI 计划接受、Monetization Gateway 批准、客户的 OAuth 权限和已接受的账单合同是独立的决策。刷新不能添加权限或接受新的商业条款。

旧版 `surcharge` 范围仍被现有集成接受。新示例使用 `monetization_gateway`。保持现有的线字段，例如 `surcharge_bps` 和 `surcharge_percentage` 不变。

[查看 Monetization Gateway 定价](https://shareai.now/zh/%e6%9e%84%e5%bb%ba%e8%80%85/%e7%9b%88%e5%88%a9%e7%bd%91%e5%85%b3/#mg-pricing) · [探索 ShareAI for Startups](https://shareai.now/zh/%e5%88%9d%e5%88%9b%e8%ae%a1%e5%88%92/) · [范围和权限](https://shareai.now/zh/%e6%96%87%e6%a1%a3/api/%e6%9e%84%e5%bb%ba%e8%80%85/%e8%ae%a4%e8%af%81/%e8%8c%83%e5%9b%b4/)

## 网关费用和Startup支持

标准收费 5% 的 Builder 加价。对于 €2.00 的 AI 网络成本和 10% 加价，客户支付 €2.20。ShareAI 接收 €0.01 的 €0.20 加价；Builder 在事件摄取前有 €0.19。

每个日历月（UTC），前 1,000 个已结算的生产 Monetization Gateway 请求是免费的，适用于整个 Builder 账户。额外的请求费用为每 1,000 €0.04，在适用折扣之前。一个已结算的请求会创建一个事件。

单独的 Pay with ShareAI，仅限 `inference` 访问，普通账户 API 密钥以及用于 Staging 或测试流量的请求不产生 Monetization Gateway 事件摄取费用。

ShareAI for Startups为批准的应用程序提供实际ShareAI费用的共享月度津贴。当前的Launch、Growth和Momentum层级分别列出€1,000、€5,000和€10,000每月。同一预算涵盖ShareAI在Builder加价上的百分比费用以及可计费的事件摄取。这不是总加价津贴、单独的免费事件配额或免费的AI`inference`。账户的前1,000个免费事件不会消耗它。

剩余的事件摄取费用从请求的新Builder收益中支付，然后是可用的Builder AI收益和无限制的AI积分。客户AI费用和产品`payments`保持独立。

ShareAI可以批准特定应用程序的费用或费用支持，期限固定或直到更改。请在控制台中查看应用程序的当前定价和特殊计划，以了解其批准条款、有效性和已消耗的津贴。层级更改或定价覆盖不会重置应用程序的月度使用量。

Launch保留“使用ShareAI登录”为可选项。Growth和Momentum要求使用；Momentum还要求在应用程序页脚中显示官方ShareAI for Startups徽章。ShareAI每周检查徽章。确认试图绕过要求的行为可能导致降级、从Startup Program中移除或根据接受的计划条款退出Marketplace。

企业费率由 ShareAI 团队为 Builder 账户配置，需在达成个性化报价后生效。分配的百分比和事件费率适用于未来的请求。

[查看 Monetization Gateway 定价](https://shareai.now/zh/%e6%9e%84%e5%bb%ba%e8%80%85/%e7%9b%88%e5%88%a9%e7%bd%91%e5%85%b3/#mg-pricing) · [探索 ShareAI for Startups](https://shareai.now/zh/%e5%88%9d%e5%88%9b%e8%ae%a1%e5%88%92/) · [范围和权限](https://shareai.now/zh/%e6%96%87%e6%a1%a3/api/%e6%9e%84%e5%bb%ba%e8%80%85/%e8%ae%a4%e8%af%81/%e8%8c%83%e5%9b%b4/)

Source: https://shareai.now/zh/%E5%8D%9A%E5%AE%A2-2/%E4%BA%A7%E5%93%81/%E5%BB%BA%E9%80%A0%E8%80%85%E7%A8%8B%E5%BA%8F/%E6%8C%87%E5%8D%97-%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95/%E5%A6%82%E4%BD%95%E9%80%90%E6%AD%A5%E5%B0%86%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%BF%9E%E6%8E%A5%E5%88%B0-shareai-builder/
