# @c15t/node-sdk 中文文档

规范地址：https://npmcn.com/package/%40c15t/node-sdk/

版本：3\.2\.2
npm 元数据更新时间：2026-11-01T17:33:12.727Z
中文译文更新时间：2026-11-08T22:34:38.168Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40c15t/node-sdk
原文对照：https://npmcn.com/package/%40c15t/node-sdk/?lang=original
项目主页：https://c15t.com/
源码仓库：https://github.com/c15t/c15t

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：121 kB，17 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2025-05-08T20:43:30.233Z
- 最新版本发布：2026-11-01T17:33:12.424Z
- 近 30 天下载量：31784（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：77（近 12 个月 44 个）

## 中文简介

C15t同意API的节点.js SDK. 在发送电子邮件前检查同意,链接用户,记录同意和从服务器代码发布法律文件.

## 安装

```sh
npm install @c15t/node-sdk
```

也可以使用：`pnpm add @c15t/node-sdk`、`yarn add @c15t/node-sdk`、`bun add @c15t/node-sdk`

## README

[![c15t: the open standard for cookie banners](https://npmcn.com/package/docs/assets/c15t-banner-readme-light.png)](https://c15t.com/?utm_source=npm&utm_medium=readme&utm_campaign=oss_readme&utm_content=%40c15t%2Fnode-sdk)

# @c15t/node-sdk:c15t同意API的Node.js客户端

[![Latest NPM Version](https://shieldcn.dev/npm/%40c15t%2Fnode-sdk.svg?variant=outline&mode=light)](https://www.npmjs.com/package/@c15t/node-sdk) [![Stars](https://shieldcn.dev/github/c15t/c15t/stars.svg?variant=outline&mode=light)](https://github.com/c15t/c15t) [![License](https://shieldcn.dev/github/c15t/c15t/license.svg?variant=outline&mode=light)](https://github.com/c15t/c15t/blob/main/LICENSE.md) [![Discord](https://shieldcn.dev/discord/1312171102268690493.svg?variant=outline&mode=light)](https://c15t.link/discord) [![Skills](https://shieldcn.dev/skills/c15t/skills/c15t.svg?variant=outline&mode=light)](https://skills.sh/c15t/skills/c15t) [![Made by Inth](https://shieldcn.dev/badge/Made%20By-Inth-ffc803.svg?color=ffc803&labelTextColor=000000&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAzOTMgNDAwIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMTgyLjY2MiAwdjM2Ljg5NWgtNTkuMDMxdjgyLjczM2g1OS4wMzF2MzYuODkzSDI3LjQ4MnYtMzYuODkzaDU5LjAzVjM2Ljg5NWgtNTkuMDNWMHpNMzIxLjk0MSA4OS44NVYwaDM1LjM1NXYxNTYuNTIxaC0yNS43MTNsLTg2LjEzNy05MC4zNjR2OTAuMzY0aC0zNS4zNTVWMGgyNi4zNTV6Ii8%2BPHBhdGggZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzE4LjU3MSAxODUuNzE0aDc0LjI4NlY0MDBIMFYxODUuNzE0aDI3Mi44NTd2LTQ3LjE0M3ptLTI5MS4wOSAyOC45Njl2MzcuMTE4aDU4LjEzN3YxMTkuNjI4aDM2Ljg5NVYyNTEuODAxaDU4LjU4NHYtMzcuMTE4em0xODIuNjEuMjI0djE1Ni41MjJoMzYuODk0VjMxMy41OWg3My4zNDF2NTcuODM5aDM3LjExOFYyMTQuOTA3aC0zNy4xMTh2NjEuNzg4aC03My4zNDF2LTYxLjc4OHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg%3D%3D&valueColor=000000&mode=light)](https://inth.com/?utm_source=npm&utm_medium=readme&utm_campaign=oss_readme&utm_content=%40c15t%2Fnode-sdk)

为主机和自控的c15t后端打入了客户端. 发送电子邮件前检查同意,签入后链接用户,输出用户同意记录,发布CI的法律文件发布并读取横幅实验结果.

c15t用于 [2 100个以上地点](https://www.wappalyzer.com/technologies/cookie-compliance/c15t/)包括expo.dev, sed.dev, unkey.dev, mintlify.com, 和 sazabi.com.

## 关键特性

-   一个 `createC15tClient()` 调用一个明确的后端 URL。 没有读取环境变量
-   方法决心 `{ ok: true, data }` 或者说 `{ ok: false, error }` 绝不拒绝。 按方法输入出错代码
-   仅限键方法( E)`consents.check`, (中文(简体) ), `subjects.list`, (中文(简体) ), `experiments.summary`, (中文(简体) ), `legalDocuments.publish`) 只存在于使用 API 密钥创建的客户端上
-   在发送任何信息之前验证输入,答复日期为 `Date` 对象
-   网络出错、出错和408起、429起、500起、502起、503起和504起故障的超时和复试 `Retry-After`
-   输入的模拟客户端 `@c15t/node-sdk/testing`

## 先决条件

-   节点.js 20.19或以后,或与 `fetch`, (中文(简体) ), `AbortSignal.any` 财务报告和审定财务报表 `crypto.randomUUID`
-   一个主持人 [c15t 实例](https://inth.com/) 或一个 [自备后端](https://c15t.com/docs/self-host/quickstart)

## 安装

```bash
pnpm add @c15t/node-sdk
```

## 使用量

1.  创建一个包含后端的 URL 客户端 。 过 `apiKey` 只有按键方法
2.  调用方法并检查 `result.ok` 读取前 `result.data`,或使用 `unwrap(result)` 将错误扔出

```ts
// server.ts
import { createC15tClient } from '@c15t/node-sdk';

const apiKey = process.env.C15T_API_KEY;
if (!apiKey) throw new Error('Set C15T_API_KEY');

const c15t = createC15tClient({
  baseUrl: 'https://app.example.com/api/c15t',
  apiKey,
});

const result = await c15t.consents.check({
  externalId: user.id,
  types: ['marketing_communications'],
});

if (result.ok && result.data.results.marketing_communications.hasConsent) {
  await sendNewsletter(user);
} else if (!result.ok) {
  console.error(result.error.code, result.error.requestId);
}
```

## 文档

见 [文档](https://c15t.com/docs/self-host/api/node-sdk) 用于指南、API参考和示例.

## 方法

| 方法 | API 密钥 |
| --- | --- |
| `consents.check({ externalId, types })` | 需求 |
| `subjects.identify(id, { externalId, identityProvider, identityToken })` | 否;仅用密钥或令牌验证 |
| `subjects.get(id, { types })` | 没有 |
| `subjects.create(input)` | 没有 |
| `subjects.list({ externalId })` | 需求 |
| `legalDocuments.publish(type, { version, hash, effectiveDate })` | 需求 |
| `experiments.summary(id, { from, to, domain })` | 需求 |
| `status()`, (中文(简体) ), `init()`, (中文(简体) ), `manifest()` | 没有 |

每一个方法 `{ signal, timeoutMs, headers, retry, requestId }` 作为其最后的论点.

`createIdentityToken(user, { signingKey })` 是一个单独的导出,而不是客户端方法。 它在本地为浏览器签名 `identify()`并丢出一个 `TypeError` 输入无效.

## 从 v2 升级

`c15tClient()` 编辑 `C15TClient` 类被替换为 `createC15tClient()`结果替换 `ResponseContext`, (中文(简体) ), `C15TError` 现在 `C15tError`,以及 `subjects.patch` 现在 `subjects.identify`见 [移徙指南](https://c15t.com/docs/self-host/upgrade-v3#update-the-nodejs-sdk)。 。 。 .

## 支助

-   加入我们 [Discord 社区](https://c15t.link/discord)
-   打开我们的问题 [GitHub 仓库](https://github.com/c15t/c15t/issues)
-   访问 [inth.com (英语)](https://inth.com/) 并使用聊天部件
-   通过电子邮件联系我们的支援团队 [支持@inth.com](mailto:support@inth.com)

## 捐款

-   读取 [捐款准则](https://c15t.com/docs/oss/contributing) 在打开拉出请求之前
-   跟着 [行为守则](https://c15t.com/docs/oss/code-of-conduct)

## 警卫

不为安全弱点打开一个公共问题。 私下通过报告 [GitHub 的脆弱性报告](https://github.com/c15t/c15t/security/advisories/new)我们审查所有的报告.

-   不在公共论坛、议题或请求中分担脆弱性
-   给它复制的步骤 和它影响的版本
-   在你透露之前给我们点时间

## 许可证

[Apache 许可证 2.0](https://github.com/c15t/c15t/blob/main/LICENSE.md)

* * *

**由 [输入](https://inth.com/?utm_source=npm&utm_medium=readme&utm_campaign=oss_readme&utm_content=%40c15t%2Fnode-sdk)**

## 常见问题

### @c15t/node-sdk 是什么？

C15t同意API的节点\.js SDK\. 在发送电子邮件前检查同意,链接用户,记录同意和从服务器代码发布法律文件\.

### 如何安装 @c15t/node-sdk？

在项目目录运行 npm install @c15t/node-sdk，或使用 pnpm add / yarn add / bun add。

### @c15t/node-sdk 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @c15t/node-sdk 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @c15t/node-sdk 可以商用吗？

@c15t/node-sdk 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @c15t/node-sdk 的下载量有多少？

根据 npm 官方下载统计，@c15t/node-sdk 在 2026/10/09 – 2026/11/07 这 30 天内被下载 31,784 次，日均约 1,059 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @c15t/node-sdk 还在维护吗？

最新版本 3\.2\.2 发布于 2026/11/02（7 天前）；至今共发布 77 个版本，其中过去 12 个月发布了 44 个；首次发布于 2025/05/09。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

