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 "Content-Type : application/json" \
-H "Accept : application/json" \
-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" : "1600703372"
  }
}
Respuesta
Parámetro
Tipo
Descripción
token
string
tu token
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" : {}
}
código-de-error
Error
Descripción
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

tipos de datos
Tipo
Descripción
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
Modo
Condición
de negocios
if (!empty(displayName)) {
businessMode = TRUE
}
personal
if (empty(displayName)) {
businessMode = FALSE
}
En la versión inglesa la variable displayName tiene un valor asignado, por lo que el servidor guardará los datos cargados, pero name lastname position se ignorarán al generar la Tarjeta de Visita. "en" : {
  "displayName" : "Non-scary-dental-services",
  "name" : "John",
  "lastname" : Kowalski",
  "position" : "CEO"
},
En la versión polaca en el dispositivo móvil se mostrará el nombre Jan Kowalski (en el puesto de Presidente). "pl" : {
  "displayName" : "",
  "name" : "Jan",
  "lastname" : "Kowalski",
  "position" : "Prezes"
},
La versión rusa no estará disponible para descargar, a pesar de guardar una parte de los datos en el servidor. "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.
Variables
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
  • requerida para generar la Tarjeta de Visita en el modo personal
  • 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}$/
company
string
nombre de la empresa
  • /^[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
  • /^[a-zA-Z0-9]{32,128}$/
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}$/
faxB
string
como arriba
emailA
string
e-mail
emailB
string
como arriba
webA
string
URL
  • /^[a-zA-Z0-9]{32,128}$/
webB
string
como arriba
webC
string
como arriba
addrStreet
string
dirección - calle
  • /^[a-zA-Z0-9]{32,128}$/
addrCity
string
dirección - ciudad
  • /^[a-zA-Z0-9]{32,128}$/
addrState
string
dirección - región / provincia
  • /^[a-zA-Z0-9]{32,128}$/
addrZip
string
dirección - código postal
  • /^[a-zA-Z0-9]{32,128}$/
addrCountry
string
dirección - país
  • /^[a-zA-Z0-9]{32,128}$/

Parámetros

Parámetros
Variable
Tipo
Descripción
langStatus
integer
0 = off, 1 = on
Activa / desactiva la versión lingüística sin eliminar datos
  • default = 0
usePhoto
integer
0 = off, 1 = on
Activa / desactiva la foto sin eliminarla
  • default = 1
cardStatus
integer
0 = off, 1 = on
Activa / desactiva la Tarjeta de Visita sin eliminarla
  • default = 1

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 "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /repositories \
Éxito HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "langList" : [local, lang]
  }
}
langList
valor
Tipo
Descripción
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 => Русский
Ejemplo de respuesta El servidor devuelve una lista de recursos disponibles: local, inglés, ruso, polaco, chino 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 "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"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
Cambia la consulta anterior de acuerdo con el siguiente ejemplo: "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" : {}
}
código-de-error
Error
Descripción
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 "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users" \
Éxito HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "cardId" : string,
    "cardQrc" : string,
    "cardAddr" : string (url)
  }
}
RESULTADO DE LA CONSULTA
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" : {}
}
código-de-error
Error
Descripción
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 "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
-d ' {
Cuando cardStatus=0, la Tarjeta de Visita se desactivará y no será posible descargarla.   "settings" : {
    "cardStatus" : "0",
    "usePhoto" : "1"
  },
  "translatable" : {
Usa langStatus para activar y desactivar idiomas.     "pl" : {
      "name" : "John",
      "lastname" : "Connor",
      "position" : "Dyrektor Zarządzający"
    },
Al añadir un nuevo idioma, establecemos langStatus=0 de forma predeterminada. Puedes evitar esta configuración asignando langStatus=1 al añadir un idioma.     "en" : {
      "name" : "John",
      "lastname" : "Connor",
      "position" : "Managing Director",
      "displayName" : "The Great John Connor",
      "keywords" : "steel, steel pipe, tubular products"
    },
A pesar de configurar langStatus=1, un idioma determinado no estará listo para ser descargado hasta que se cumpla la condición (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}} \
É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.
código-de-error
Error
Descripción
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" : {}
}
código-de-error
Error
Descripción
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ámetros
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 "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}}

Cambio de estado de la foto

  • Comando users
  • Solicitud 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}}

Cambio de estado del idioma

  • Comando users
  • Solicitud 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}}
Éxito HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {}
}
Fracaso HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [código-de-error],
  "result" : {}
}
código-de-error
Error
Descripción
todos
ve CÓDIGO-DE-ERROR en la sección Guardar datos

Descarga de datos

  • Comando users
  • Solicitud 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}}" \
É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" : {}
}
código-de-error
Error
Descripción
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 "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}}" \

Eliminación del Perfil

  • Comando users
  • Solicitud 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}}" \
Éxito HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {}
}
Fracaso HTTP/1.1 200 OK
{
 "success" : false,
 "errors" : [código-de-error],
 "result" : {}
}
código-de-error
Error
Descripción
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