授权验证

在此阶段,我们设想您为Bonder的合作伙伴,我们的支持部门为您提供了用户名、密码和API客户名称。
  • 命令 auth
  • 要求 POST
curl -k -X POST \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
-d '{
  "username" : "USERNAME",
  "password" : "PASSWORD",
  "client" : "API_CLIENT_NAME",
  "rpt" : "10000"
}' \
"https:// {{API_URL}} /auth" \
授权验证参数
参数
类型
描述
username
string
API用户名
password
string
API密码
client
string
API客户名
rpt
integer
每个token (RPT - Requests Per Token)的操作数 rpt<1000, 100000>
成功 HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {
    "token" : "access_token",
    "expire" : "1601254974"
  }
}
回复
参数
类型
描述
token
string
您的token
expire
integer
包含token到期日期的时间戳 expire=time()+3600
expirerpt变量正在加速。第一个达到目标值的用户将停用token。
失败 HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [代码错误],
  "result" : {}
}
代码错误
错误
描述
INVALID_CREDENTIALS_ERROR
密码错误,电子邮箱错误,或者帐户已被删除或不存在
SERVER_OFFLINE_ERROR
服务器因进行维护而离线。
可进行软件更新
  • 建议:45-60分钟后重试
AUTH_SERVICE_OFFLINE_ERROR
授权验证服务对所有用户暂停。
可进行软件更新
  • 建议:45-60分钟后重试
API_SERVICE_OFFLINE_ERROR
暂停API服务。
可进行软件更新
  • 建议:45-60分钟后重试
ACCOUNT_INACTIVE_ERROR
API账户已暂停或将被删除
  • 建议:联系我们的支持部门
INTERNAL_SERVER_ERROR
内部服务器错误
  • 建议:请重试
DATABASE_ERROR
数据库连接错误
  • 建议:请重试

数据结构

在开始其他命令之前,我们将向您展示Bonder使用的数据结构。

数据类型

数据类型
类型
描述
多语言
应该用每种语言分别保存
固定
保存在单独的表中,并以每种语言添加至名片中
例如: 如果您更改固定类型的值,例如email或者mobile,则所有语言版本的名片都会被更新。

名片模式

由于您的客户可能不是个人,而是企业,例如: 优质牙科服务,我们创建了displayName顶级变量。 如果!empty(displayName),则名片在商务模式下工作,并且变量namelastnameposition在名片生产过程中将被跳过(虽然服务器存储了数值)。
名片模式
模式
条件
商务
if (!empty(displayName)) {
businessMode = TRUE
}
个人
if (empty(displayName)) {
businessMode = FALSE
}
在英文版中,为displayName变量分配了值,因此服务器将保存上载的数据,但是在生成名片时name lastname position将被忽略。 "en" : {
  "displayName" : "Non-scary-dental-services",
  "name" : "John",
  "lastname" : Kowalski",
  "position" : "CEO"
},
在波兰语版本中,姓名Jan Kowalski将显示在移动设备上(董事长职位)。 "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}$/
company
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}$/
phoneB
string
如上
mobileA
string
手机号码
  • 前导零和非数字字符将被截断
  • 客户应提供国家区号
  • 我们将在开头添加“ +”号
  • /^[a-zA-Z0-9]{32,128}$/
mobileB
string
如上
skypeA
string
Skype用户名
  • /^[a-zA-Z0-9]{32,128}$/
skypeB
string
如上
faxA
string
传真号码
  • 前导零和非数字字符将被截断
  • 客户应提供国家区号
  • 我们将在开头添加“ +”号
  • /^[a-zA-Z0-9]{32,128}$/
faxB
string
如上
emailA
string
电子邮件
emailB
string
如上
webA
string
URL
  • /^[a-zA-Z0-9]{32,128}$/
webB
string
如上
webC
string
如上
addrStreet
string
地址 - 街道
  • /^[a-zA-Z0-9]{32,128}$/
addrCity
string
地址 - 城市
  • /^[a-zA-Z0-9]{32,128}$/
addrState
string
地址 - 省份
  • /^[a-zA-Z0-9]{32,128}$/
addrZip
string
地址 - 邮编
  • /^[a-zA-Z0-9]{32,128}$/
addrCountry
string
地址 - 国家
  • /^[a-zA-Z0-9]{32,128}$/

参数

参数
变量
类型
描述
langStatus
integer
0 = off, 1 = on
启用/禁用语言版本而不删除数据
  • default = 0
usePhoto
integer
0 = off, 1 = on
启用/禁用照片而不删除它
  • default = 1
cardStatus
integer
0 = off, 1 = on
启用/禁用名片而不删除它
  • default = 1

语言支持

Bonder允许创建超过60种语言的名片,API用户也可使用此关键功能。 为方便您,我们准备了Bonder支持的翻译语言代码的存储库,您可以在创建自己的应用程序时使用它们。 我们使用lang变量管理不同语言版本。您将使用它来添加、编辑和删除语言版本。
  • 命令 repositories
  • 要求 GET
curl -k -X GET \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /repositories \
成功 HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "langList" : [local, lang]
  }
}
langList
类型
描述
lang
string
语言代码符合ISO 639-1:2002
local
string
本地语言名称列表,例如: en => English, ru => Русский
回复范例 服务器返回可用资源的列表: local、英语、俄语、波兰语、中文 HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "langList" : ["local", "en", "ru", "pl", "zh"]
  }
}
使用langList中的值,以下载所需的资源。回复始终以关键字对:数值的形式出现。

下载本地语言名称列表

  • 命令 repositories
  • 要求 GET
curl -k -X GET \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /repositories/local" \
成功 HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "pl" : "Polski",
    "en" : "English",
    "ru" : "Русский",
    ...,
    "关键" : "值"
 }
}

下载翻译的语言名称

  • 命令 repositories
  • 要求 GET
根据以下示例更改上述查询: "https:// {{API_URL}} /repositories/ru" \
"https:// {{API_URL}} /repositories/en" \
如果存储库没有您要查找的资源,请通知我们的支持部门。我们将尽快填补空白。 如果您等不及我们的回复,建议您下载可用的语言代码并自行翻译。
失败 HTTP/1.1 200OK
{
  "success" : false,
  "errors" : [代码错误],
  "result" : {}
}
代码错误
错误
描述
INVALID_CREDENTIALS_ERROR
密码或电子邮箱错误或者token无效
  • 建议:重复授权验证
RESOURCE_NOT_FOUND_ERROR
您要寻找的资源不存在
  • 建议:检查您的搜寻
其余
请参阅授权验证部分中的错误代码

创建新用户

  • 命令 users
  • 要求 post
curl -k -X POST \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Accept : application/json" \
"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}$/
cardAddr
string
新创建名片的地址
cardQrc
string
保存在base64中名片地址的QR二维码
cardId cardQrc cardAddr变量应存储在本地服务器上并分配给用户。 cardId变量是与API正确通信所必需的。
失败 HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [代码错误],
  "result" : {}
}
代码错误
错误
描述
INVALID_CREDENTIALS_ERROR
密码或电子邮箱错误或者token无效
  • 建议:重复授权验证
PROFILE_LIMIT_REACHED_ERROR
资料限制已用尽
  • 建议:联系支持部门以更改您的帐户设置
其余
请参阅授权验证部分中的错误代码

保存数据

  • 我们不使用严格的查询模板。仅发送需要更新的数据。
  • 使用PUT命令创建新用户。
  • 使用translatable部分的lang关键字添加语言
  • 如果客户端不想指定语言版本,则设置lang=un,表示通用
  • 在一个查询(更新,添加)中最多可以修改五种语言。5种以上的语言版本将被忽略。
  • 命令 users
  • 要求 put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
-d ' {
cardStatus=0时,名片将被禁用,将无法下载它。   "settings" : {
    "cardStatus" : "0",
    "usePhoto" : "1"
  },
  "translatable" : {
使用langStatus启用或禁用语言。     "pl" : {
      "name" : "John",
      "lastname" : "Connor",
      "position" : "Dyrektor Zarządzający"
    },
添加新语言时,默认设置langStatus=0。您可通过在添加语言时,分配langStatus=1来解决此设置。     "en" : {
      "name" : "John",
      "lastname" : "Connor",
      "position" : "Managing Director",
      "displayName" : "The Great John Connor",
      "keywords" : "steel, steel pipe, tubular products"
    },
尽管设置langStatus=1,但在满足条件前,无法准备下载该语言(name!=null && lastname!=null) || displayName!=null     "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,当将资料照片附加至请求时,服务器可能会报错。
代码错误
错误
描述
THUMBNAIL_REJECTED_ERROR
数据已保存,但服务器拒绝上传照片
  • 建议:检查您的照片生成器
失败 HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [代码错误],
  "result" : {}
}
代码错误
错误
描述
INVALID_CREDENTIALS_ERROR
密码或电子邮箱错误或者token无效
  • 建议:重复授权验证
CARD_ID_NOT_FOUND_ERROR
cardId名片不存在或您无权修改此资源
  • 建议:检查您的搜寻
其余
请参阅授权验证部分中的错误代码

修改设定

参数
参数
类型
描述
status
string
<enable, disable>

更改名片状态

  • 命令 users
  • 要求 put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
https:// {{API_URL}} /users/{{card_id}}/cardStatus/{{status}}

更改照片状态

  • 命令 users
  • 要求 put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
https:// {{API_URL}} /users/{{card_id}}/usePhoto/{{status}}

更改语言状态

  • 命令 users
  • 要求 put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
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" : {}
}
代码错误
错误
描述
所有
请参阅保存数据部分中的错误代码

下载数据

  • 命令 users
  • 要求 get
curl -k -X GET \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"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
密码或电子邮箱错误或者token无效
  • 建议:重复授权验证
CARD_ID_NOT_FOUND_ERROR
cardId名片不存在或您无权修改此资源
  • 建议:检查您的搜寻
其余
请参阅授权验证部分中的错误代码

删除数据

删除语言

  • 命令 users
  • 要求 delete
curl -k -X DELETE \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users/{{card_id}}/{{lang}}" \

删除用户

  • 命令 users
  • 要求 delete
curl -k -X DELETE \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"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
密码或电子邮箱错误或者token无效
  • 建议:重复授权验证
CARD_ID_NOT_FOUND_ERROR
cardId名片不存在或您无权修改此资源
  • 建议:检查您的搜寻
其余
请参阅授权验证部分中的错误代码