跳到主要内容

DeBox DApp 去中心化应用

DeBox DApp 去中心化应用

面向开发者的 DApp 接入指南(当前版本)。

1. DApp 是什么

DeBox DApp 是运行在 DeBox 内置浏览器中的 H5 应用(HTML/CSS/JS)。

你可以:

  • 复用现有 H5 页面快速接入
  • 调用注入的钱包对象进行链上交互
  • 通过服务端调用 DeBox OpenAPI 完成消息、用户、群组等能力接入

2. 快速开始

  1. DeBox 开放平台 创建应用并获取 API Key
  2. 准备一个可公网访问的 HTTPS 页面。
  3. 按本文完成 DeBox 环境检测与钱包能力接入。
  4. 把 OpenAPI 调用放在后端服务,不在前端暴露密钥。

3. 运行环境检测

const isDeBoxUA = !!window?.navigator?.userAgent?.includes("DeBox")
const hasDeBoxWallet = typeof window?.deboxWallet !== "undefined"
const hasEthereum = typeof window?.ethereum !== "undefined"
const hasSolana = typeof window?.solana !== "undefined"

建议:

  • hasDeBoxWallet || hasEthereum 作为 EVM 主判断。
  • 非 DeBox 环境给出降级提示,不直接报错。

4. 钱包与用户信息能力

window.deboxWallet 是主要入口(与 window.ethereum 兼容)。

4.1 请求权限

await window.deboxWallet.request({
method: "wallet_requestPermissions",
params: [{ eth_accounts: { debox_getUserInfo: {} } }],
})

4.2 获取用户公开信息

const userInfo = await window.deboxWallet.request({
method: "debox_getUserInfo",
params: [],
})

返回示例(字段因客户端版本可能有差异):

{
"uid": "jkdi123",
"address": "0xa56b4f0c7622bd076c2ba48b17d1e8d3fbf5303e",
"name": "张三",
"avatar": "https://...png"
}

5. 后端调用 OpenAPI(推荐架构)

安全原则:

  • 前端只负责采集输入和调用你自己的后端 API。
  • X-API-KEY、签名参数、App Secret 全部保留在后端。

主文档入口:

6. 消息发送(新版接口示例)

以下示例基于当前公开接口:POST /openapi/bot/sendMessage

curl -X POST "https://open.debox.pro/openapi/bot/sendMessage" \
-H "Content-Type: application/json" \
-H "X-API-KEY: YOUR_APP_KEY" \
-d '{
"chat_id": "cc0onr82",
"chat_type": "group",
"content": "Hello from DApp",
"parse_mode": "richtext"
}'

参数要点:

  • chat_typegroupprivate
  • chat_id
    • group 时填群 gid
    • private 时填用户 user_id
  • content:消息主体
  • parse_mode 默认 richtext

7. 上线检查清单

  1. 页面 HTTPS 可访问,移动端适配完成。
  2. DeBox 环境检测与非 DeBox 降级逻辑可用。
  3. 钱包授权流程可追踪(拒绝/取消/成功)。
  4. OpenAPI 调用全部走后端,密钥不下发前端。
  5. 错误日志有 request-id、用户标识、接口名。

8. 常见问题

  1. 前端直接调 OpenAPI 报鉴权或 CORS:
  • 属于预期,改为后端代调。
  1. 发送消息失败:
  • 检查 chat_type/chat_id 是否匹配。
  • 检查 content 非空、parse_mode 合法。
  1. 钱包对象不存在:
  • 当前不在 DeBox 容器或客户端版本不满足。

9. 相关文档