Autorización
En esta etapa, asumimos que eres socio de Bonder y nuestro Equipo de Soporte te ha proporcionado un nombre de Usuario, Contraseña y un nombre del cliente API.
-
Comando auth
-
Solicitud POST
curl -k -X POST \
-H \
-H \
-d '{
"username" : "USERNAME",
"password" : "PASSWORD",
"client" : "API_CLIENT_NAME",
"rpt" : "10000"
}' \
"https:// {{API_URL}} /auth" \
Parámetros de autorización
Parámetro
Tipo
Descripción
username
string
nombre de usuario API
password
string
contraseña API
client
string
nombre del cliente API
rpt
integer
cantidad de operaciones por token (RPT - Requests Per Token) rpt<1000, 100000>
Éxito
HTTP/1.1 200 OK
{
"success" : true,
"errors" : [],
"result" : {
"token" : "access_token",
"expire" : "1614440991"
}
}
Parámetro
Tipo
Descripción
expire
integer
marca de tiempo de la fecha de caducidad del token expire=time()+3600
Las variables expire y rpt están compitiendo. La que alcanza el valor objetivo primera desactivará el token.
Fracaso
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [código-de-error],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
Contraseña incorrecta, correo electrónico incorrecto o la Cuenta ha sido eliminada o no existe
SERVER_OFFLINE_ERROR
El servidor está fuera de línea debido a los trabajos de mantenimiento en curso.
Posible actualización de software
-
Sugerencias: intenta nuevamente en 45-60 min.
AUTH_SERVICE_OFFLINE_ERROR
El servicio de autorización no está disponible temporalmente para todos los Usuarios.
Posible actualización de software
-
Sugerencias: intenta nuevamente en 45-60 min.
API_SERVICE_OFFLINE_ERROR
El servicio API no está disponible temporalmente.
Posible actualización de software
-
Sugerencias: intenta nuevamente en 45-60 min.
ACCOUNT_INACTIVE_ERROR
Cuenta API suspendida o destinada a eliminación
-
Sugerencias: contacto con el Equipo de Soporte
INTERNAL_SERVER_ERROR
Error interno del servidor
-
Sugerencias: intenta nuevamente
DATABASE_ERROR
Error de conexión a la base de datos
-
Sugerencias: intenta nuevamente
Estructura de datos
Antes de pasar a otros comandos, te mostraremos la estructura de datos utilizada por Bonder.
Tipos de datos
traducible
deben guardarse por separado en cada idioma
no traducible
se guardan en una tabla separada y se añaden a la Tarjeta de Visita en cada idioma
Por ejemplo:
Si cambias un valor no traducible como email o mobile, se actualizarán todas las versiones lingüísticas de la Tarjeta de Visita.
Modos de Tarjetas de Visita
Debido al hecho de que tu cliente puede ser una empresa y no una persona física, p. ej. Totalmente-no-aterradores-servicios-dentales, creamos la variable del nivel más alto displayName.
Si !empty(displayName), la Tarjeta de Visita operará en modo de negocios y las variables name lastname position serán omitidas al generar la Tarjeta de Visita (el servidor guardará los valores de todos modos).
Modos de Tarjetas de Visita
de negocios
if (!empty(displayName)) {
businessMode = TRUE
}
personal
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" : "Директор"
}
Variables
Cada variable debe validarse previamente antes de ser enviada al servidor. Si el valor de la variable enviada no es conforme con la expresión regular asignada a ella, el servidor le asignará null y, a pesar de ello, enviará la respuesta positiva success=true sobre el almacenamiento de datos.
Nombre
Tipo
Traducible
Descripción
name
string
nombre
-
requerida para generar la Tarjeta de Visita en el modo personal
-
guardada e ignorada en el modo de negocios
-
/^[a-zA-Z0-9]{2,25}$/
lastname
string
apellido
-
guardada e ignorada en el modo de negocios
-
guardada e ignorada en el modo de negocios
-
/^[a-zA-Z0-9]{32,128}$/
displayName
string
nombre mostrado
-
requerida para generar la Tarjeta de Visita en el modo de negocios
-
/^[a-zA-Z0-9]{32,128}$/
position
string
puesto
-
guardada e ignorada en el modo de negocios
-
/^[a-zA-Z0-9]{32,128}$/
keywords
string
palabras clave que mejor describen a una persona o empresa
-
coma como separador
-
/^[a-zA-Z0-9]{1,150}$/
thumbnail
string
foto del usuario o logotipo que se muestra en un dispositivo móvil
-
imagen guardada en base64
-
tamaño fijo 300px x 300px
-
tamaño máximo de archivo 50kB
phoneA
string
número de teléfono
-
se cortarán ceros delanteros a la izquierda y caracteres no numéricos
-
el cliente debe proporcionar el código de país
-
nosotros mismos añadiremos "+" al principio
-
/^[a-zA-Z0-9]{32,128}$/
phoneB
string
como arriba
mobileA
string
número de teléfono móvil
-
se cortarán ceros delanteros a la izquierda y caracteres no numéricos
-
el cliente debe proporcionar el código de país
-
nosotros mismos añadiremos "+" al principio
-
/^[a-zA-Z0-9]{32,128}$/
mobileB
string
como arriba
skypeA
string
nombre de usuario de Skype
skypeB
string
como arriba
faxA
string
número de fax
-
se cortarán ceros delanteros a la izquierda y caracteres no numéricos
-
el cliente debe proporcionar el código de país
-
nosotros mismos añadiremos "+" al principio
-
/^[a-zA-Z0-9]{32,128}$/
emailB
string
como arriba
addrState
string
dirección - región / provincia
addrZip
string
dirección - código postal
parámetros
Variable
Tipo
Descripción
langStatus
integer
0 = off, 1 = on
Activa / desactiva la versión lingüística sin eliminar datos
usePhoto
integer
0 = off, 1 = on
Activa / desactiva la foto sin eliminarla
cardStatus
integer
0 = off, 1 = on
Activa / desactiva la Tarjeta de Visita sin eliminarla
Soporte de idiomas
Bonder permite a sus Usuarios crear Tarjetas de Visita en más de 60 idiomas y esta funcionalidad clave también está disponible para los Usuarios de API.
Para tu comodidad hemos preparado los repositorios que contienen los códigos de idiomas traducidos compatibles con Bonder, que puedes usar creando tu propia aplicación.
Para administrar las versiones lingüísticas usamos la variable lang. La usarás para añadir, editar y eliminar las versiones lingüísticas.
-
Comando repositories
-
Solicitud GET
curl -k -X GET \
-H \
-H \
-H \
-H \
"https:// {{API_URL}} /repositories \
Éxito
HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
"langList" : [local, lang]
}
}
lang
string
código de idioma conforme con ISO 639-1:2002
local
string
lista de nombres de idiomas locales, p. ej.: en => English, ru => Русский
HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
"langList" : ["local", "en", "ru", "pl", "zh"]
}
}
Usa los valores de langList para descargar los recursos que necesitas. La respuesta siempre vendrá en forma de los pares llave : valor.
Descarga una lista de nombres de idiomas locales
-
Comando repositories
-
Solicitud GET
curl -k -X GET \
-H \
-H \
-H \
-H \
"https:// {{API_URL}} /repositories/local" \
Éxito
HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
"pl" : "Polski",
"en" : "English",
"ru" : "Русский",
...,
"llave" : "valor"
}
}
Descarga nombres de idiomas traducidos
-
Comando repositories
-
Solicitud GET
"https:// {{API_URL}} /repositories/ru" \
"https:// {{API_URL}} /repositories/en" \
Si en los repositorios no tenemos el recurso que estás buscando, informa de ello al Equipo de Soporte. Vamos a subsanar las deficiencias lo antes posible.
Si no puedes esperar nuestra respuesta, te sugerimos que descargues los códigos de idiomas disponibles y hagas tus propias traducciones.
Fracaso
HTTP/1.1 200OK
{
"success" : false,
"errors" : [código-de-error],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
Contraseña o correo electrónico incorrectos o token inválido
-
Sugerencias: repite autorización
RESOURCE_NOT_FOUND_ERROR
Recurso que buscas no existe
-
Sugerencias: comprueba la consulta
otros
ve CÓDIGO-DE-ERROR en la sección Autorización
Creación de un Perfil nuevo
-
Comando users
-
Solicitud post
curl -k -X POST \
-H \
-H \
-H \
"https:// {{API_URL}} /users" \
Éxito
HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
"cardId" : string,
"cardQrc" : string,
"cardAddr" : string (url)
}
}
Variable
Tipo
Descripción
cardId
string
número de Tarjeta de Visita del Perfil creado
-
sensible a mayúsculas y minúsculas
-
/^[a-zA-Z0-9]{32,128}$/
cardAddr
string
dirección de la Tarjeta de Visita creada
cardQrc
string
código QR de la dirección de la Tarjeta de Visita guardado en base64
Las variables cardId cardQrc cardAddr deben ser guardadas localmente en tu servidor y asignadas al Perfil.
La variable cardId:/SPAN es necesaria para una comunicación adecuada con la API.
Fracaso
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [código-de-error],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
Contraseña o correo electrónico incorrectos o token inválido
-
Sugerencias: repite autorización
PROFILE_LIMIT_REACHED_ERROR
Se ha alcanzado el límite de Perfiles
-
Sugerencias: contacto con el Equipo de Soporte para cambiar la Configuración de la Cuenta
otros
ve CÓDIGO-DE-ERROR en la sección Autorización
Guardar los datos
-
No utilizamos plantillas de consulta rígidas. Envía solo los datos que necesiten ser actualizados.
-
Usa el comando PUT para crear un Perfil nuevo.
-
Añade un idioma usando las llaves lang en la sección translatable.
-
Si el cliente no quiere especificar la versión lingüística, configura lang=un, que significa universal.
-
Modifica hasta cinco idiomas en una consulta (actualización, adición). Se ignorarán las versiones lingüísticas superiores a 5.
-
Comando users
-
Solicitud put
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}} \
Éxito
HTTP/1.1 200 OK
{
"success": true,
"errors" : [código-de-error],
"result" : {}
}
A pesar de devolver success=true el servidor puede informar sobre un error si añades una foto de perfil a tu consulta.
THUMBNAIL_REJECTED_ERROR
Los datos se han guardado, pero el servidor ha rechazado la imagen cargada
-
Sugerencias: comprueba tu generador de imágenes
Fracaso
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [código-de-error],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
Contraseña o correo electrónico incorrectos o token inválido
-
Sugerencias: repite autorización
CARD_ID_NOT_FOUND_ERROR
La Tarjeta de Visita
cardId no existe o no tienes permiso para modificar este recurso
-
Sugerencias: comprueba la consulta
otros
ve CÓDIGO-DE-ERROR en la sección Autorización
Modificación de configuraciones
Parámetro
Tipo
Descripción
status
string
<enable, disable>
Cambio de estado de la Tarjeta de Visita
-
Comando users
-
Solicitud put
curl -k -X PUT \
-H \
-H \
-H \
-H \
https:// {{API_URL}} /users/{{card_id}}/cardStatus/{{status}}
Cambio de estado de la foto
-
Comando users
-
Solicitud put
curl -k -X PUT \
-H \
-H \
-H \
-H \
https:// {{API_URL}} /users/{{card_id}}/usePhoto/{{status}}
Cambio de estado del idioma
-
Comando users
-
Solicitud put
curl -k -X PUT \
-H \
-H \
-H \
-H \
https:// {{API_URL}} /users/{{card_id}}/langStatus/{{lang}}/{{status}}
Éxito
HTTP/1.1 200 OK
{
"success" : true,
"errors" : [],
"result" : {}
}
Fracaso
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [código-de-error],
"result" : {}
}
todos
ve CÓDIGO-DE-ERROR en la sección Guardar datos
Descarga de datos
-
Comando users
-
Solicitud get
curl -k -X GET \
-H \
-H \
-H \
-H \
"https:// {{API_URL}} /users/{{card_id}}" \
Éxito
HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
"translatable" : {
"lang" : {
"langStatus" : "1",
"llave" : "valor"
},
"lang" : {
"langStatus" : "0",
"llave" : "valor"
}
},
"non-translatable" : {
"thumbnail" : "base64_encoded_image",
"llave" : "valor"
},
"settings" : {
"cardStatus" : "1",
"usePhoto" : "1",
"cardQrc" : "base64_encoded_image",
"cardAddr" : "URL",
"usePhoto" : "1"
}
}
Fracaso
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [código-de-error],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
Contraseña o correo electrónico incorrectos o token inválido
-
Sugerencias: repite autorización
CARD_ID_NOT_FOUND_ERROR
La Tarjeta de Visita
cardId no existe o no tienes permiso para modificar este recurso
-
Sugerencias: comprueba la consulta
otros
ve CÓDIGO-DE-ERROR en la sección Autorización
Eliminación de datos
Eliminación del idioma
-
Comando users
-
Solicitud delete
curl -k -X DELETE \
-H \
-H \
-H \
-H \
"https:// {{API_URL}} /users/{{card_id}}/{{lang}}" \
Eliminación del Perfil
-
Comando users
-
Solicitud delete
curl -k -X DELETE \
-H \
-H \
-H \
-H \
"https:// {{API_URL}} /users/{{card_id}}" \
Éxito
HTTP/1.1 200 OK
{
"success" : true,
"errors" : [],
"result" : {}
}
Fracaso
HTTP/1.1 200 OK
{
"success" : false,
"errors" : [código-de-error],
"result" : {}
}
INVALID_CREDENTIALS_ERROR
Contraseña o correo electrónico incorrectos o token inválido
-
Sugerencias: repite autorización
CARD_ID_NOT_FOUND_ERROR
La Tarjeta de Visita
cardId no existe o no tienes permiso para modificar este recurso
-
Sugerencias: comprueba la consulta
otros
ve CÓDIGO-DE-ERROR en la sección Autorización