授权验证
在此阶段,我们设想您为Bonder的合作伙伴,我们的支持部门为您提供了用户名、密码和API客户名称。
curl -k -X POST \
-H \
-H \
-d '{
"username" : "USERNAME",
"password" : "PASSWORD",
"client" : "API_CLIENT_NAME",
"rpt" : "10000"
}' \
"https:// {{API_URL}} /auth" \
rpt
integer
每个token (RPT - Requests Per Token)的操作数 rpt<1000, 100000>
成功
HTTP/1.1 200 OK
{
"success" : true,
"errors" : [],
"result" : {
"token" : "access_token",
"expire" : "1618239395"
}
}
expire
integer
包含token到期日期的时间戳 expire=time()+3600
expire和rpt变量正在加速。第一个达到目标值的用户将停用token。
失败
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [代码错误],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
密码错误,电子邮箱错误,或者帐户已被删除或不存在
AUTH_SERVICE_OFFLINE_ERROR
API_SERVICE_OFFLINE_ERROR
数据结构
在开始其他命令之前,我们将向您展示Bonder使用的数据结构。
数据类型
例如:
如果您更改固定类型的值,例如email或者mobile,则所有语言版本的名片都会被更新。
名片模式
由于您的客户可能不是个人,而是企业,例如: 优质牙科服务,我们创建了displayName顶级变量。
如果!empty(displayName),则名片在商务模式下工作,并且变量name、lastname和position在名片生产过程中将被跳过(虽然服务器存储了数值)。
商务
if (!empty(displayName)) {
businessMode = TRUE
}
个人
if (empty(displayName)) {
businessMode = FALSE
}
"en" : {
"displayName" : "Non-scary-dental-services",
"name" : "John",
"lastname" : Kowalski",
"position" : "CEO"
},
"pl" : {
"displayName" : "",
"name" : "Jan",
"lastname" : "Kowalski",
"position" : "Prezes"
},
"ru" : {
"displayName" : "",
"name" : "",
"lastname" : "Ковалский",
"position" : "Директор"
}
变量
每个变量必须在上传至服务器前,先经过预先验证。如果发送的变量的值与分配给它的正则表达式不匹配,那么服务器将会分配null,并就保存数据仍然返回正面的回复success=true。
name
string
名
-
要求以个人模式生成名片
-
在商务模式下保存并忽略
-
/^[a-zA-Z0-9]{2,25}$/
lastname
string
姓
-
在商务模式下保存并忽略
-
在商务模式下保存并忽略
-
/^[a-zA-Z0-9]{32,128}$/
displayName
string
显示名称
-
要求以商务模式生成名片
-
/^[a-zA-Z0-9]{32,128}$/
position
string
职位
-
在商务模式下保存并忽略
-
/^[a-zA-Z0-9]{32,128}$/
keywords
string
最能描述个人或公司的关键字
-
以逗号作为分隔符
-
/^[a-zA-Z0-9]{1,150}$/
thumbnail
string
在移动设备上显示的用户照片或徽标
-
照片保存在base64
-
固定尺寸为300px x 300px
-
文件最大不超过50kB
phoneA
string
电话号码
-
前导零和非数字字符将被截断
-
客户应提供国家区号
-
我们将在开头添加“ +”号
-
/^[a-zA-Z0-9]{32,128}$/
mobileA
string
手机号码
-
前导零和非数字字符将被截断
-
客户应提供国家区号
-
我们将在开头添加“ +”号
-
/^[a-zA-Z0-9]{32,128}$/
faxA
string
传真号码
-
前导零和非数字字符将被截断
-
客户应提供国家区号
-
我们将在开头添加“ +”号
-
/^[a-zA-Z0-9]{32,128}$/
参数
langStatus
integer
0 = off, 1 = on
启用/禁用语言版本而不删除数据
usePhoto
integer
0 = off, 1 = on
启用/禁用照片而不删除它
cardStatus
integer
0 = off, 1 = on
启用/禁用名片而不删除它
语言支持
Bonder允许创建超过60种语言的名片,API用户也可使用此关键功能。
为方便您,我们准备了Bonder支持的翻译语言代码的存储库,您可以在创建自己的应用程序时使用它们。
我们使用lang变量管理不同语言版本。您将使用它来添加、编辑和删除语言版本。
curl -k -X GET \
-H \
-H \
-H \
-H \
"https:// {{API_URL}} /repositories \
成功
HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
"langList" : [local, lang]
}
}
lang
string
语言代码符合ISO 639-1:2002
local
string
本地语言名称列表,例如: en => English, ru => Русский
HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
"langList" : ["local", "en", "ru", "pl", "zh"]
}
}
使用langList中的值,以下载所需的资源。回复始终以关键字对:数值的形式出现。
下载本地语言名称列表
curl -k -X GET \
-H \
-H \
-H \
-H \
"https:// {{API_URL}} /repositories/local" \
成功
HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
"pl" : "Polski",
"en" : "English",
"ru" : "Русский",
...,
"关键" : "值"
}
}
下载翻译的语言名称
"https:// {{API_URL}} /repositories/ru" \
"https:// {{API_URL}} /repositories/en" \
如果存储库没有您要查找的资源,请通知我们的支持部门。我们将尽快填补空白。
如果您等不及我们的回复,建议您下载可用的语言代码并自行翻译。
失败
HTTP/1.1 200OK
{
"success" : false,
"errors" : [代码错误],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
创建新用户
curl -k -X POST \
-H \
-H \
-H \
"https:// {{API_URL}} /users" \
成功
HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
"cardId" : string,
"cardQrc" : string,
"cardAddr" : string (url)
}
}
cardId
string
新创建用户的名片编号
-
区分大小写
-
/^[a-zA-Z0-9]{32,128}$/
cardQrc
string
保存在base64中名片地址的QR二维码
cardId cardQrc cardAddr变量应存储在本地服务器上并分配给用户。
cardId变量是与API正确通信所必需的。
失败
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [代码错误],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
PROFILE_LIMIT_REACHED_ERROR
保存数据
-
我们不使用严格的查询模板。仅发送需要更新的数据。
-
使用PUT命令创建新用户。
-
使用translatable部分的lang关键字添加语言
-
如果客户端不想指定语言版本,则设置lang=un,表示通用。
-
在一个查询(更新,添加)中最多可以修改五种语言。5种以上的语言版本将被忽略。
curl -k -X
PUT \
-H \
-H \
-H \
-H \
-d '
{
"settings" : {
"cardStatus" : "0",
"usePhoto" : "1"
},
"translatable" : {
"pl" : {
"name" : "John",
"lastname" : "Connor",
"position" : "Dyrektor Zarządzający"
},
"en" : {
"name" : "John",
"lastname" : "Connor",
"position" : "Managing Director",
"displayName" : "The Great John Connor",
"keywords" : "steel, steel pipe, tubular products"
},
"es" : {
"langStatus" : "1",
"name" : "John",
"position" : "Director Ejecutivo"
},
"pt" : {
"langStatus" : "1",
"name" : "John",
"lastname" : "Connor",
},
"ru" : {
"langStatus" : "1",
"name" : "",
"lastname" : "Коннор",
},
"zh" : {
"position" : "首席执行官"
}
},
"non-translatable" : {
"thumbnail" : "base64_encoded_image",
"mobileA" : "123456789",
"emailB" : "[email protected]"
}
}
' \
"https:// {{API_URL}} /users/{{card_id}} \
成功
HTTP/1.1 200 OK
{
"success": true,
"errors" : [代码错误],
"result" : {}
}
尽管返回success=true,当将资料照片附加至请求时,服务器可能会报错。
失败
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [代码错误],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
修改设定
status
string
<enable, disable>
更改名片状态
curl -k -X PUT \
-H \
-H \
-H \
-H \
https:// {{API_URL}} /users/{{card_id}}/cardStatus/{{status}}
更改照片状态
curl -k -X PUT \
-H \
-H \
-H \
-H \
https:// {{API_URL}} /users/{{card_id}}/usePhoto/{{status}}
更改语言状态
curl -k -X PUT \
-H \
-H \
-H \
-H \
https:// {{API_URL}} /users/{{card_id}}/langStatus/{{lang}}/{{status}}
成功
HTTP/1.1 200 OK
{
"success" : true,
"errors" : [],
"result" : {}
}
失败
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [代码错误],
"result" : {}
}
下载数据
curl -k -X GET \
-H \
-H \
-H \
-H \
"https:// {{API_URL}} /users/{{card_id}}" \
成功
HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
"translatable" : {
"lang" : {
"langStatus" : "1",
"关键" : "值"
},
"lang" : {
"langStatus" : "0",
"关键" : "值"
}
},
"non-translatable" : {
"thumbnail" : "base64_encoded_image",
"关键" : "值"
},
"settings" : {
"cardStatus" : "1",
"usePhoto" : "1",
"cardQrc" : "base64_encoded_image",
"cardAddr" : "URL",
"usePhoto" : "1"
}
}
失败
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [代码错误],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
删除数据
删除语言
curl -k -X DELETE \
-H \
-H \
-H \
-H \
"https:// {{API_URL}} /users/{{card_id}}/{{lang}}" \
删除用户
curl -k -X DELETE \
-H \
-H \
-H \
-H \
"https:// {{API_URL}} /users/{{card_id}}" \
成功
HTTP/1.1 200 OK
{
"success" : true,
"errors" : [],
"result" : {}
}
失败
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [代码错误],
"result" : {}
}
INVALID_CREDENTIALS_ERROR