@c15t/node-sdk:c15t同意API的Node.js客户端
为主机和自控的c15t后端打入了客户端. 发送电子邮件前检查同意,签入后链接用户,输出用户同意记录,发布CI的法律文件发布并读取横幅实验结果.
c15t用于 2 100个以上地点包括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 实例 或一个 自备后端
安装
pnpm add @c15t/node-sdk
使用量
- 创建一个包含后端的 URL 客户端 。 过
apiKey只有按键方法 - 调用方法并检查
result.ok读取前result.data,或使用unwrap(result)将错误扔出
// 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);
}
文档
见 文档 用于指南、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见 移徙指南。 。 。 .
支助
- 加入我们 Discord 社区
- 打开我们的问题 GitHub 仓库
- 访问 inth.com (英语) 并使用聊天部件
- 通过电子邮件联系我们的支援团队 支持@inth.com
捐款
警卫
不为安全弱点打开一个公共问题。 私下通过报告 GitHub 的脆弱性报告我们审查所有的报告.
- 不在公共论坛、议题或请求中分担脆弱性
- 给它复制的步骤 和它影响的版本
- 在你透露之前给我们点时间
许可证
由 输入