SuperAPI AI 工具集

one-connect

智能体与模型

查看项目

更新于 10-16 05:47

技能介绍

One Connect 用于为应用接入 One 的连接授权流程:用户授权后,应用可在其授权范围内调用用户自己连接的工具。包负责 OAuth,开发者只需接入三部分:一个按钮、两个路由,以及用授权发起的调用。服务端的 client secret 与 connect key 始终留在服务端。

模式:默认为 key 模式,服务端为应用保存一个 connect key,并为每个用户保存一个 id;也可选 token 模式,为每个用户保存 access 与 refresh token,需要应用自行运行每日刷新任务。除服务端保存内容外,两种模式的路由、按钮和调用相同。

接入准备:在 One 面板 Developers -> Connect -> New app 创建应用,获取 ONE_CLIENT_ID、ONE_CLIENT_SECRET、ONE_CONNECT_KEY,注册与回调路由完全一致的 Redirect URI,可选设置 ONE_PERMISSION_SET。环境变量仅在服务端使用,不要把 secret 或 connect key 贴入对话。

安装与客户端:npm install @withone/connect,在服务端用 createOneConnect 创建客户端,提供 clientId、clientSecret、redirectUri、permissionSet、connectKey 以及 saveUser/loadUser/clearUser,用户标识使用应用自身的 user id。

两个路由:Next.js 等用 @withone/connect/next 的 createOneConnectRoutes,Express 等用 @withone/connect/node 的 createOneConnectHandlers,返回 authorize 与 callback,两个路由必须位于同一目录,因为 state cookie 以此为作用域。identifyUser 返回应用已登录用户 id。

按钮:可用现成的 ConnectButton(React、Vue、Svelte 或 Web Component),也可用 useOneConnect 或 createConnectFlow 接入应用自己的按钮;服务端渲染时可使用普通链接 /api/one/authorize。不要自建完成页,回调重定向即完成。

调用步骤为:listConnections 列出连接;searchActions 或 listActions 查找动作;getActionKnowledge 首次运行前阅读知识(字段、编码、请求头);runAction 执行,返回 status、ok、blockedByGrant 与 data。不要手动设置认证头。

错误处理:OneConnectError 的 code 包括 not_connected、reconnect_required、refresh_failed、request_failed;403 且 blockedByGrant 为 true 表示超出授权,不要重试。

限制与规则:connect key 仅在 Production 生效;redirect URI 必须与 ONE_REDIRECT_URI 完全一致;不要向用户展示 result.message 或 URL 文本,应记录日志;密钥只能放环境变量。token 模式下 token 需加密存储,建议加 per-user 锁,并运行每日刷新任务,否则长期未调用的用户需重新连接。资料未提供定价、平台支持范围等更多信息。