{{ userInfo?.name || '搭贝用户' }} 退出登录
菜单
目录
玩转搭贝
自定义组件
开放对接协议
发布人:爱搭贝
更新时间:2026-05-19

概述

本openapi目前处于内测阶段,本文档仅临时对特定用户开放。 注:正式文档发布前,可能会有变动,为减少可能存在返回工,请在实际开发启动前,联系客服人员确认以是否存在更新版本

简介

开放接口服务(open api)是搭贝能力开放平台的核心服务之一,为搭贝用户提供统一、安全的双向数据传输服务,赋予用户终端应用个性化需求的多维支撑能力。 开放接口openapi及webhook均以本协议实现数据传输。

术语说明

  • 平台:特指搭贝能力开放平台,为用户提供各类功能,为用户提供更多自定义开发能力,功能包括但不限于开放接口、数据推送、自定义组件/页面、oa接入等。
  • 用户:特指搭贝用户,接入平台的用户即为接入方。
  • 第三方服务:用户服务可能涉及除搭贝及自身独立的其他服务,如银行类接口,统一称第三方服务。

协议说明

接口采用https协议做为基本载体,结合签名、加密等机制以达到数据准确、安全传输的目的。

开发须知

在对接开放接口之前,需要先了解如下数据。

  • 获取/配置,使用管理员进入应用工厂,获取开放接口的配置数据
image.png

注:内测阶段, 平台暂不提供图形配置,请联系客服由开发提供

数据项 参数说明 备注
api_key string,用户身份的标记 由平台为用户分配,需要接入侧保存。注:内测阶段仅一个租户开放一个apiKey
signing_key string,参与HmacSHA256摘要数据 由平台分配或用户自定义生成,用于数据传输中签名/摘要使用
secret_key string,aes数据加密密钥 由平台分配或用户自定义生成,用于body报文的加解密使

请求地址

钉钉 api地址:https://ding.idabei.com/open_api
微信 api地址:https://wechat.idabei.com/open_api

公共参数

参数名 参数类型 必填 说明
Authorization string,header,认证格式 参考格式Authorization: Bearer api_key,注意首字母A大写,将参与签名
api_version string,header中,版本号 目前可固定: v1.0
random_str string,32位随机数 用于签名校验。注意区分大小写
timestamp number,时间戳 用于签名校验,请使用发起请求时的时间,注意为ms
signature string,摘要/签名 防止数据篡改

规则要求

  • 遵循统一的REST的设计风格
  • 请求都统一为HTTPS
  • 数据传输编码为 UTF-8
  • 请求体中数据密文传输
  • 响应体中数据密文传输
  • 时效性为1小时,请求不再处理
  • 同一用户请求限制5次/秒

错误码

状态码 说明
200 成功
400 失败
错误码 说明
4001 用户认证失败
4002 不合法的版本
4002 不合法的参数
4003 校验签名失败
4004 业务参数无效
9999 其它错误

开发指南

签名生成

  1. 签名串格式
  2. 签名串至多4行(对于get请求为3行),每一行为一个参数,如果有下一行,行尾以 \n(换行符,ASCII编码值为0x0A)结束,不包括最后一行。

URI\n

请求头apiKey\n

请求参数字符串\n

请求报文主体

  1. 构造签名串

以创建表单数据为例:

获取请求的uri

获取请求的绝对URL,并去除域名部分得到参与签名的URI,注意不包括查询参数

/open_api/apps/app00001/forms/form00001/record_create

获取请求头Authorization中的api_key,注意需要去掉Bearer

d8e0001634bd48b4bf9d999eb3d103e2

获取参数字符串,需要对请求参数数据key按自然顺序排序,把请求要素按照“参数=参数值”的模式用“&”字符拼接成字符串。

random_str=X3oZ21AmdXTuYMl8IJY0hCJLoamryaLd×tamp=1643008040000

  • 获取请求报文主体

将请求报文进行json字符串转换,没有请求体,则不参与。

  • 参与签名的请求体必须明文,不能是加密后密文
  1. 计算签名值

hmacsha256加密

采用HmacSHA256算法对字符串进行摘要算法,这里我们假定signing_key的值为123,然后对其进行base64编码得到signature

1.png

对“1792783e37457f468fa296436d79cf89af6e28e920a357f5ae778f3fc48dcd58”进行base64编码得到signature为:

MTc5Mjc4M2UzNzQ1N2Y0NjhmYTI5NjQzNmQ3OWNmODlhZjZlMjhlOTIwYTM1N2Y1YWU3NzhmM2ZjNDhkY2Q1OA==

报文加密/解密

目前平台只针对请求的body和响应的body中data参数加密,加密方式为aes对称加密。 ecb/128/base64输出

  • 注意:使用openssl,需要将secretKey指定为ascii码的16进制格式,如下方,secretKey原文为:1234567890123456,其16进制为31323334353637383930313233343536
  • 响应体的只有data为密文,整体的errcode和errmsg等协议数据,参考如下

{

   "errcode": 0,

   "errmsg": "success",

   "data": "cRCw/5b+TfUPMY0d5AU8RaTUj27aa8R6xiyctUDXFHQA8LYhT6LwESLSWXR00YzQ"

}

加密演示

echo -n '{"param1":"value1","param2":"value2"}'

| openssl enc -aes-128-ecb -e -K 31323334353637383930313233343536 -nosalt -a

//得到aes加密结果

cRCw/5b+TfUPMY0d5AU8RaTUj27aa8R6xiyctUDXFHQA8LYhT6LwESLSWXR00YzQ

  • 解密演示

echo 'cRCw/5b+TfUPMY0d5AU8RaTUj27aa8R6xiyctUDXFHQA8LYhT6LwESLSWXR00YzQ'

| openssl enc -aes-128-ecb -a -d -K 31323334353637383930313233343536 -nosalt

//得到aes解密结果

{"param1":"value1","param2":"value2"}

签名验签

签名验证用于双向校验,对于用户即接入方校验平台的数据推送签名,而平台侧校验接入方的数据同步

  1. 身份认证

header中请获取Authorization, 得到对应的api_key,并判断该api_key是否和平台分配给自己的值相同,如果不相同,则认为请求无效

Authorization: Bearer d8e0001634bd48b4bf9d999eb3d103e2

  1. 签名校验

对于接入方而言,需要按上方签名生成的步骤,走一遍摘要算法,得到值后同参数中的signature对比,如果相同则验证通过。

  • 签名前需要对body解密
本篇目录
{{ dl1.name }}
{{ dl2.name }}
{{ dl3.name }}
已有100W家企业组织通过搭贝解决运营难题

搭贝免费注册

  • 注册后免费试用15天
  • 满意后再付款,使用不满意随时退款
  • 400+ 管理应用模版免费安装使用
  • 支持对所有模板进行自定义修改
立即在线试用