DEVELOPER DOCS
Scenelet SDK
把这个轻量 SDK 嵌入你的浏览器插件或 Web 应用。它用官方 Scenelet 账户为你的用户登录(OAuth 2.0 + PKCE),并在每次调用功能前按点数余额放行。
1. 安装
# npm
npm install @scenelet/sdk
# CDN
<script src="https://api.scenelet.com/sdk/v1/scenelet-sdk.umd.js"></script>2. 登录(OAuth 2.0 + PKCE)
loginViaPopup 会弹出官方 Scenelet 登录窗口,用户授权后即返回。你自己域名下的回调页只需调用 completePopupCallback()。桌面端或服务端等无法弹窗的场景,请改用 buildAuthorizeUrl() → 打开浏览器 → exchangeCode()。
import { Scenelet } from '@scenelet/sdk';
const sc = new Scenelet({
appKey: 'app_xxxxxxx',
clientId: 'cli_xxxxxxx', // from your Developer apps dashboard
});
// Opens the official Scenelet login in a popup (Authorization Code + PKCE)
// and resolves once the user approves — the token is stored for you.
await sc.loginViaPopup({ redirectUri: 'https://yourapp.com/oauth/callback' });
// …on your redirect page (https://yourapp.com/oauth/callback):
Scenelet.completePopupCallback('https://yourapp.com');3. 为功能加点数闸门
登录后 token 会自动保存。每次计费操作前调用 gate();若被拒绝,SDK 会自动弹出官方充值 / 登录弹窗,你无需自行处理。
// gate() verifies credits before a metered action and shows the
// official topup / login modal on denial.
if (!(await sc.gate())) return;
runMyFeature();4. 直接调用 execute 接口(HTTP)
推荐使用 SDK,但你也可以直接调用网关。把资产 id 作为 app_id 传入。feature_cost 仅作参考——网关始终按资产在服务端配置的价格计费,客户端无法少报来少付。
POST https://api.scenelet.com/v1/sdk/execute
Headers:
Authorization: Bearer <scenelet-token>
Content-Type: application/json
{ "app_id": "app_xxxxxxx", "feature_cost": 1 }
→ 200 OK
{ "ok": true, "remainingCredits": 95, "userId": "u_abc" }
→ 200 OK (denied)
{ "ok": false, "reason": "insufficient_funds",
"topupUrl": "https://scenelet.com/topup" }5. 远程 Kill-Switch
如果你的场景被平台远程禁用(违规、申诉中),/v1/sdk/execute 会直接返回 reason: "plugin_disabled"。SDK 自动弹出禁用提示,不需要你处理。
需要 client_id?在 scenelet.com 的开发者应用(Developer apps)面板创建一个 OAuth 客户端。app_key 标识用于计费的资产,client_id 标识发起登录的应用。