表单内部App应用调用接口

内部App应用接入API认证机制说明

TDUCK 开放 API v1 接口采用 HTTP Basic Authentication 认证机制,调用方需使用系统生成的 AppIdAppSecret,完成请求签名,保障 API 调用安全。


认证机制概述

  • 鉴权方式:HTTP Basic Auth
  • 鉴权目标:绑定于特定用户账号,Token 权限等同于发起用户
  • 调用限制:每个 Token 仅对应其创建用户的数据访问范围

图片

🧭 接入流程

步骤 操作说明
1️⃣ 登录 TDuckX 后台管理系统
2️⃣ 点击【其他工具】>【应用接入】
3️⃣ 新建密钥,生成AppIdAppSecret
4️⃣ 拼接字符串:appId + ":" + appSecret
5️⃣ 对拼接字符串进行Base64编码
6️⃣ 拼接认证头:Authorization: Basic <Base64编码结果>
7️⃣ 携带该认证头请求接口,实现安全访问

🧾 请求 Headers 要求

Header 名称 说明 示例值
Content-Type 请求体格式 application/json
Accept 返回数据格式 application/json
Authorization 鉴权信息,必须带上 Basic Token Basic QjFzU...

示例说明

示例参数

项目 示例值
AppId B1sPsK43zJuIVqmk
AppSecret 5ISISQYciSzxjXrBiL87Z26GA5Zaqokc
拼接前字符串 B1sPsK43zJuIVqmk:5ISISQYciSzxjXrBiL87Z26GA5Zaqokc
Base64 编码 QjFzUHNLNDN6SnVJVnFtazo1SVNJU1FZY2lTenhqWHJCaUw4N1oyNkdBNVphcW9rYw==

最终请求头格式

Authorization: Basic QjFzUHNLNDN6SnVJVnFtazo1SVNJU1FZY2lTenhqWHJCaUw4N1oyNkdBNVphcW9rYw==

示例调用

【curl 示例】

curl --location --request GET 'http://localhost:8888/tduck-api/open/form/fields?formKey=6Pfm9yAD' \
--header 'Authorization: Basic QjFzUHNLNDN6SnVJVnFtazo1SVNJU1FZY2lTenhqWHJCaUw4N1oyNkdBNVphcW9rYw==' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json'

【Java 示例】(使用 OkHttp)

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
    .url("http://localhost:8888/tduck-api/open/form/fields?formKey=6Pfm9yAD")
    .get()
    .addHeader("Authorization", "Basic QjFzUHNLNDN6SnVJVnFtazo1SVNJU1FZY2lTenhqWHJCaUw4N1oyNkdBNVphcW9rYw==")
    .addHeader("Content-Type", "application/json")
    .addHeader("Accept", "application/json")
    .build();

Response response = client.newCall(request).execute();
String responseBody = response.body().string();
System.out.println(responseBody);

【认证Token生成代码 - Java 示例】

public class AuthUtil {
    /**
     * 生成 Base64 编码的 Basic Auth Token
     */
    public static String generateToken(String appId, String appSecret) {
        String authStr = appId + ":" + appSecret;
        return Base64.getEncoder().encodeToString(authStr.getBytes(StandardCharsets.UTF_8));
    }
}

⚠️ 注意事项

  • 每个密钥仅限当前用户使用,数据访问范围受限于当前账号。
  • 不建议将 AppSecret 明文存储或提交至客户端代码。
  • 可为不同业务系统生成多个密钥,方便权限隔离与管理。
  • 若 Token 泄露,应立即在后台删除并重新生成密钥。

📚 接口文档说明

TDuck API V1 接口文档已托管在 ApiFox 平台,包含了所有开放接口的详细定义,包括请求方式、参数说明、示例数据、响应结构、状态码等信息。

💡 建议开发者访问链接查看最新文档,以获取最新字段和参数规范。

🔗 快速入口