@chatlychat/sdk-js

中文文档
0.26.2发布于 2026/11/06MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 4606

Chartly的浏览器SDK——识别访客,射击CDP事件,控制部件,无头地运行对话,并打入窗口. 聊天时.

中文使用文档
文档目录8 节
  1. 快开始
  2. Chatly.init(options)
  3. 方法
  4. 键入 window.Chatly (装载器片段的全局)
  5. 第二段,线性视图 mount (中文(简体) )
  6. 已签名的页面上下文
  7. 此 README 用于记录不存在的 API
  8. 关于此寄存器

@chatlychat/sdk-js (英语)

Chatly 平台的浏览器 SDK: 控制页面中的部件, 识别 访问者、射击CDP活动以及——无头无尾——列表对话、发送 留言和订阅答复,但根本不显示我们的UI.

两分之一,只有一块位于全球元件上. 部件控制 方法(单位:千美元)open, (中文(简体) ), close, (中文(简体) ), identify, (中文(简体) ), track)也可用,无 软件包-装入部件片段并调用 window.Chatly。 。 。 . 无头之半 (:listConversations, (中文(简体) ), listMessages, (中文(简体) ), send, (中文(简体) ), uploadFile, (中文(简体) ), subscribe, (中文(简体) ), rate, (中文(简体) ), emailTranscript已经 没有 全球和 需要此软件包或直接调用已记录的 REST 端点.

npm install @chatlychat/sdk-js
# or
pnpm add @chatlychat/sdk-js

快开始

import { Chatly } from '@chatlychat/sdk-js';

// The constructor is PRIVATE. `init` is the only way in.
const chatly = Chatly.init({ publicId: 'ch_web_0192…' });

await chatly.identify({ externalId: 'user_42', name: 'Ada', userHash: '…' });
const { conversationId } = await chatly.startConversation('Hello');
await chatly.send(conversationId, 'and one more thing');

Chatly.init(options)

选项类型默认页:1
publicIdstring—— 说(原始内容存档于2018-10-21). web 频道公众号 从Dashboard 频道.
apiUrlstring?https://api.chatlychat.com另一个Chartly环境,或测试服务器在您自己的套房.
realtimeUrlstring?服务器报告袜子。 IO 主机为 subscribe()。只为服务器无法知道的主机.

方法

部件控制- 这些镜像 window.Chatly 并需要页面上的部件 :

  • open() 编号 : close()

访客身份和分析:

  • identify(input) → { contactId }。通过 userHash 以获得身份 已核实没有它,来访者就无法核实,需要工具 被证明的身份会拒绝.
  • track(name, properties?)

无头对话表面——不需要部件 :

  • startConversation(body, attachments?) → { conversationId }
  • send(conversationId, body, attachments?)
  • listConversations(limit = 20)
  • unreadCount() → number代理和机器人消息 这个访客没有 读取,横穿他们的线程——自定义发射机的徽章显示的数字. 这个 花费了请求,所以它是一个呼叫而不是财产.
  • listMessages(conversationId, limit = 50)
  • subscribe(conversationId, handlers, options?) → Subscription使用 当它能和落回投票时,推接接头,所以它继续工作 无法打开 WebSocket.
  • uploadFile(file) → VisitorAttachment,以传递给 send 或者说 startConversation
  • rate(conversationId, score, comment?)
  • emailTranscript(conversationId, email)

键入 window.Chatly (装载器片段的全局)

如果将部件嵌入两行加载器片段,然后从中驱动 您自己的类型脚本, 此软件包也是 类型声明 联 合 国 全球。 安装为 dev 依赖性 —— 您不需要运行时代码 并从中导入任何类型。 导入增强功能 Window 整个节目, 所以没有 /// <reference> 行与无 tsconfig types 添加条目:

import type { ChatlyGlobal, InitOptions } from '@chatlychat/sdk-js';

const options: InitOptions = { publicId: 'acme-web', theme: { primaryColor: '#4f46e5' } };
window.Chatly?.init(options);

从 0.2.0数字 : ChatlyApi, (中文(简体) ), ChatlyGlobal, (中文(简体) ), InitOptions, (中文(简体) ), WidgetTheme, (中文(简体) ), WidgetBehavior, (中文(简体) ), WidgetCopy, (中文(简体) ), WidgetQuickLink, (中文(简体) ), WidgetQuip, (中文(简体) ), WidgetIdentity, (中文(简体) ), SessionSnapshot, (中文(简体) ), ChatlyEventName, (中文(简体) ), ChatlyEventHandler, (中文(简体) ), OpenRequest, (中文(简体) ), StartConversationRequest, (中文(简体) ), SetContextInput, (中文(简体) ), ReportActionInput从 0.4.0数字 : MountOptions这些是部件的 因此,没有复制件送交 漂来漂去.

第二段,线性视图mount(中文(简体) )

ChatlyApi 声明 mount(opts: MountOptions) 财务报告和审定财务报表 unmount(el) - 一个秒 部件视图,在你的页面中,在发射器旁边。 这是在部件的 全球和 没有 编辑 Chatly 分类:视图由 部件捆绑,所以它需要页面上的捆绑.

import type { MountOptions } from '@chatlychat/sdk-js';

const view: MountOptions = { el: '#shop-assistant', publicId: 'ch_web_shop…' };
window.Chatly?.('mount', view);
// later, when your route unmounts
window.Chatly?.('unmount', '#shop-assistant');

MountOptions 实值 InitOptions 与 mountTo 改为 el 财务报告和审定财务报表 publicId 被选择。 与主部件共享的视图是什么 没有,为什么没有 botSlug: 见 网络频道指南。 。 。 .

Window.Chatly 输入为完整的 API,因为 window.Chatly.identify(...) 作为类型错误对每个人都是没用的。 之间到底有什么 片段正在运行, 捆绑到达只是排队 函数 已安装的片段 。 从可以提早运行的代码,使用可调用 形式,即片段队列和捆绑重放的- window.Chatly?.('identify', { externalId }) - 或等待着 Chatly.on('ready', …)。 。 。 .

已签名的页面上下文

setContext 实值 没有 在SDK上,它是在部件本身的全球。 见 页:1 网络频道指南 联 合 国 电话和 身份核查 如何铸造签名 contextToken。 。 。 .

此 README 用于记录不存在的 API

为了记录在案,因为它可能已经复制:它描述了 new Chatly({ channelPublicId, baseUrl, widgetSelector, locale })附加时 toggle(), (中文(简体) ), on(), (中文(简体) ), destroy() 财务报告和审定财务报表 send(body)。 。 。 . 这些都不存在. 这个 构造器是私有的, 选项名称是 publicId 编号 : apiUrl 编号 : realtimeUrl,以及 send 先找个人谈谈 已更正 2026-10-12 反对 src/index.ts。 。 。 .


关于此寄存器

这是一个 镜像。 。 。 . @chatlychat/sdk-js 由私人独身建筑 其余的 月台的迁移和合同检查现场直播 无法直接合并, 但补丁仍然是获得东西最快的方法 固定了,我们会把它 与归属.

您可以在这里做什么: 读取源代码, 运行测试, 打开一个问题, 或打开一个 PR 并且我们将把diff当作提案.

未镜像 : src/无头- message-parity.spec.ts, src/icon-names-parity.spec.ts - 仍然在此重现的类别 与单列波的原作相匹配,这仅仅是其中的一个有意义的主张. 他们 继续跑.

问题: https://github.com/chatlychat/chatly-sdk-js/issues (中文(简体) ) * 文件: https://chatlychat.com/docs (中文(简体) )

版本与发布记录

@chatlychat/sdk-js 共发布 31 个版本,首次发布于 2026/10/13;过去 12 个月发布了 31 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.26.2latest2026/11/063 天前
0.26.12026/11/045 天前
0.26.02026/11/045 天前
0.25.02026/10/2812 天前
0.24.02026/10/2812 天前
0.23.02026/10/2812 天前

关于 @chatlychat/sdk-js 的常见问题

@chatlychat/sdk-js 是什么?

Chartly的浏览器SDK——识别访客,射击CDP事件,控制部件,无头地运行对话,并打入窗口. 聊天时.

如何安装 @chatlychat/sdk-js?

在项目目录运行 npm install @chatlychat/sdk-js,或使用 pnpm add / yarn add / bun add。

@chatlychat/sdk-js 支持 TypeScript 吗?

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

@chatlychat/sdk-js 支持 ESM 还是 CommonJS?

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

@chatlychat/sdk-js 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@chatlychat/sdk-js 可以商用吗?

@chatlychat/sdk-js 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@chatlychat/sdk-js 的下载量有多少?

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

@chatlychat/sdk-js 还在维护吗?

最新版本 0.26.2 发布于 2026/11/06(3 天前);至今共发布 31 个版本,其中过去 12 个月发布了 31 个;首次发布于 2026/10/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。