如何在 Node.js 脚本中用 init.cjs 初始化 Puter.js 并通过 auth token 调用 API?

发布时间:2026/9/10 16:58:58
如何在 Node.js 脚本中用 init.cjs 初始化 Puter.js 并通过 auth token 调用 API? 如何在 Node.js 脚本中用 init.cjs 初始化 Puter.js 并通过 auth token 调用 API【免费下载链接】puter The Internet Computer! Free, Open-Source, and Self-Hostable.项目地址: https://gitcode.com/GitHub_Trending/pu/puter在 Node.js 脚本里调用 Puter 的 AI 对话、文件系统、KV 等能力时不能直接用浏览器里的全局puter对象而要完成一条固定路径通过 NPM 安装heyputer/puter.js包从包内 Node.js 专用入口src/init.cjs引入init函数把 Puter 账号的 auth token 传给它拿到puter对象之后再像文档中其他平台一样调用puter.ai.chat()、puter.auth.getUser()等 API。本文按安装、初始化、调用、验证的顺序走一遍这条路径内容依据 Getting Started 文档、Supported Platforms 文档 和 Puter.js 包的 README。安装 heyputer/puter.js 包在你的 Node.js 项目目录下执行npm install heyputer/puter.js安装完成后浏览器代码通常import { puter } from heyputer/puter.js而 Node.js 脚本走的是包内的另一个入口文件heyputer/puter.js/src/init.cjs两者不要混用——Puter.js README 中明确把这条路径标注为NODE JS ONLY。用 auth token 初始化 puter 对象Node.js 下文档给出的两种引入方式CommonJS 或 ESMconst { init } require(heyputer/puter.js/src/init.cjs); // or import { init } from heyputer/puter.js/src/init.cjs; const puter init(process.env.puterAuthToken); // uses your auth token这里puterAuthToken是文档示例约定的环境变量名你需要把它的值设置为 Puter 账号的 auth token。init返回的就是puter对象。从 init.cjs 源码 可以看到token 参数是可选的传了 token 时SDK 会通过setAuthToken把 token 写入当前实例不传则得到一个未带 token 的实例。脚本里可以一次初始化多个puter实例、分别使用不同账号的 tokenREADME 中的示例const puter init(process.env.puterAuthToken); // uses your auth token const puter2 init(process.env.puterAuthToken2); // use some other auth token可选用 getAuthToken 通过浏览器登录获取 token如果你的运行环境能打开浏览器例如在本地机器上跑 CLI 工具Supported Platforms 文档 的表述是 environment has browser access可以不手工准备 token改用getAuthTokenimport { init, getAuthToken } from heyputer/puter.js/src/init.cjs; const authToken await getAuthToken(); // performs browser based auth const puter init(authToken);按 init.cjs 源码 的实现getAuthToken()会在本机随机端口起一个临时 HTTP 服务并用open在浏览器中打开 Puter 的授权页?actionauthmeredirectURL...完成登录后 token 通过本地回调的token查询参数返回Promise resolve 出该 token。注意文档示例使用了顶层await请按模块环境ESM方式运行该脚本。调用 API 并验证拿到puter对象后调用方式与其他平台一致。验证 token 是否生效最直接的是 puter.auth.getUser()——文档标注该方法支持nodejs平台它返回一个 Promiseresolve 为包含用户基本信息的User对象puter.auth.getUser().then(function(user) { puter.print(JSON.stringify(user)); });如果user被正常打印出来说明 token 生效。再按 Getting Started 的 Node.js 示例发起一次 AI 调用const puter init(process.env.puterAuthToken); puter.ai.chat(What color was Napoleons white horse?).then((response) { puter.print(response); });判断依据是 Promise 正常 resolve 并打印出响应内容如果 Promise rejecttoken 或网络环节存在问题文档没有给出 Node.js 场景下更细分的错误码表需要结合 reject 的错误对象自行排查。可选配置自定义 API 与 GUI 源按 Puter.js README默认情况下 Puter.js 使用官方 Puter API 与 GUI 源。如需指向自定义部署必须在导入 SDK之前设置全局变量// For API origin globalThis.PUTER_API_ORIGIN https://custom-api.puter.com; // For GUI origin globalThis.PUTER_ORIGIN https://custom-gui.puter.com; import { puter } from heyputer/puter.js; // or however you import it for your env限制说明init/getAuthToken这条入口仅用于 Node.js 环境浏览器和 Puter Apps 中直接用import { puter } from heyputer/puter.js、CommonJSrequire或 CDN 脚本即可获得puter不需要init。getAuthToken()依赖浏览器授权流程在无头服务器等无浏览器环境中不可用此类环境应通过process.env.puterAuthToken之类的环境变量直接提供 token。init.cjs会加载构建产物 bundle在源码检出中直接使用时需要先构建否则 init.cjs 会抛出puter.js bundle not found错误这是该文件的明确报错条件正常通过 NPM 安装发布包则不涉及此问题。【免费下载链接】puter The Internet Computer! Free, Open-Source, and Self-Hostable.项目地址: https://gitcode.com/GitHub_Trending/pu/puter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考