Autorisation

À cette étape, nous assumons que vous êtes partenaire de Bonder et notre Département de Support vous a fourni le nom d'Utilisateur, Mot de Passe et le nom de client API.
  • Commande auth
  • Demande 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" \
Paramètres d'autorisation
Paramètre
Type
Description
username
string
nom d'utilisateur API
password
string
mot de passe API
client
string
nom de client API
rpt
integer
lnombre d'opérations par token (RPT - Requests Per Token) rpt<1000, 100000>
Succès HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {
    "token" : "access_token",
    "expire" : "1606348603"
  }
}
Réponse
Paramètre
Type
Description
token
string
votre token
expire
integer
horodatage contenant une date d'expiration de token expire=time()+3600
Les variables expire et rpt font la course. La première qui atteint la valeur cible désactive le token.
Échec HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [code-d'erreur],
  "result" : {}
}
code-d'erreur
Erreur
Description
INVALID_CREDENTIALS_ERROR
Mot de Passe invalide, e-mail invalide ou le Compte a été supprimé ou n'existe pas
SERVER_OFFLINE_ERROR
Serveur hors connexion en raison des travaux de maintenance en cours.
Actualisation de logiciel possible
  • Suggestion: essayez de nouveau dans 45-60 min.
AUTH_SERVICE_OFFLINE_ERROR
Service d'autorisation momentanément indisponible pour tous les Utilisateurs.
Actualisation de logiciel possible
  • Suggestion: essayez de nouveau dans 45-60 min.
API_SERVICE_OFFLINE_ERROR
Service API momentanément indisponible.
Actualisation de logiciel possible
  • Suggestion: essayez de nouveau dans 45-60 min.
ACCOUNT_INACTIVE_ERROR
Compte API suspendu ou destiné à être supprimé
  • Suggestion: contact avec le Département de Support
INTERNAL_SERVER_ERROR
Erreur interne du serveur
  • Suggestion: essayez de nouveau
DATABASE_ERROR
Erreur de connexion avec la base de données
  • Suggestion: essayez de nouveau

Structure des données

Avant de s'occuper des autres commandes nous vous expliquerons la structure des données utilisée par Bonder.

Types de données

types de données
Type
Description
traduisible
doivent êtres sauvegardées séparemment dans chaque langue
non-traduisible
sont stockées dans un tableau séparé et ajoutées à la Carte de Visite dans chaque langue
Par exemple: Si vous changez la valeur de type permanent comme email ou mobile, toutes les versions linguistiques de la Carte de Visite seront actualisées.

Modes de Cartes de Visite

Considérant que votre client peut ne pas être une personne mais une entreprise, p. ex. Totalement-non-terribles-services-dentaires, nous avons créé la variable de plus haute niveau - displayName. Si !empty(displayName), la Carte de Visite marchera au mode business et les variables name lastname position seront omises lors de la création de la Carte de Visite (le serveur stockera les valeurs tout de même).
Modes de Cartes de Visite
Mode
Condition
business
if (!empty(displayName)) {
businessMode = TRUE
}
personnel
if (empty(displayName)) {
businessMode = FALSE
}
En version anglaise la variable displayName a une valeur assignée donc le serveur sauvegardera des données chargées mais name lastname position seront négligés lors de la création de la Carte de Visite. "en" : {
  "displayName" : "Non-scary-dental-services",
  "name" : "John",
  "lastname" : Kowalski",
  "position" : "CEO"
},
En version polonaise l'appareil affichera le nom de Jak Kowalski (en tant que Président). "pl" : {
  "displayName" : "",
  "name" : "Jan",
  "lastname" : "Kowalski",
  "position" : "Prezes"
},
La version russe sera inaccessible à télécharger malgré le stockage d'une partie des données sur le serveur. "ru" : {
  "displayName" : "",
  "name" : "",
  "lastname" : "Ковалский",
  "position" : "Директор"
}

Variables

Chaque variable doit être préliminairement validée avant l'envoi au serveur. Si la valeur de la variable envoyée n'est pas conforme à l'expression régulièrequi lui a été assignée, le serveur lui assignera null et lui retournera malgré tout une réponse positive success=true sur la sauvegarde des données.s
Variables
Nom
Type
Traduisible
Description
name
string
prénom
  • exigée pour générer une Carte de Visite au mode personnel
  • sauvegardée et ignorée au mode business
  • /^[a-zA-Z0-9]{2,25}$/
lastname
string
nom
  • sauvegardée et ignorée au mode business
  • sauvegardée et ignorée au mode business
  • /^[a-zA-Z0-9]{32,128}$/
displayName
string
nom d'affichage
  • exigée pour générer une Carte de Visite au mode business
  • /^[a-zA-Z0-9]{32,128}$/
company
string
nom de l'Entreprise
  • /^[a-zA-Z0-9]{32,128}$/
position
string
profession
  • sauvegardée et ignorée au mode business
  • /^[a-zA-Z0-9]{32,128}$/
keywords
string
mots-clés qui décrivent le mieux la personne ou l'entreprise
  • virgule comme un séparateur
  • /^[a-zA-Z0-9]{1,150}$/
thumbnail
string
la photo de l'utilisateur ou le logo affiché sur l'appareil mobile
  • photo sauvegardée dans le base64
  • taille fixe 300px x 300 px
  • taille maximale de fichier 50kB
phoneA
string
numéro de téléphone
  • zéro initial et des signes non numériques seront coupés
  • le client doit donner son numéro indicatif du pays
  • nous ajouterons nous-mêmes le «+» au début
  • /^[a-zA-Z0-9]{32,128}$/
phoneB
string
comme ci-dessus
mobileA
string
numéro de portable
  • zéro initial et des signes non numériques seront coupés
  • le client doit donner son numéro indicatif du pays
  • nous ajouterons nous-mêmes le «+» au début
  • /^[a-zA-Z0-9]{32,128}$/
mobileB
string
comme ci-dessus
skypeA
string
nom d'utilisateur skype
  • /^[a-zA-Z0-9]{32,128}$/
skypeB
string
comme ci-dessus
faxA
string
numéro de fax
  • zéro initial et des signes non numériques seront coupés
  • le client doit donner son numéro indicatif du pays
  • nous ajouterons nous-mêmes le «+» au début
  • /^[a-zA-Z0-9]{32,128}$/
faxB
string
comme ci-dessus
emailA
string
e-mail
emailB
string
comme ci-dessus
webA
string
URL
  • /^[a-zA-Z0-9]{32,128}$/
webB
string
comme ci-dessus
webC
string
comme ci-dessus
addrStreet
string
adresse - rue
  • /^[a-zA-Z0-9]{32,128}$/
addrCity
string
adresse - ville
  • /^[a-zA-Z0-9]{32,128}$/
addrState
string
adresse – état / province
  • /^[a-zA-Z0-9]{32,128}$/
addrZip
string
adresse - code postal
  • /^[a-zA-Z0-9]{32,128}$/
addrCountry
string
adresse - pays
  • /^[a-zA-Z0-9]{32,128}$/

paramètres

Paramètres
Variable
Type
Description
langStatus
integer
0 = off, 1 = on
Activez / désactivez la version linguistique sans devoir supprimer les données
  • default = 0
usePhoto
integer
0 = off, 1 = on
Activez / désactivez la photo sas devoir la supprimer
  • default = 1
cardStatus
integer
0 = off, 1 = on
Activez / désactivez la Carte de Visite sans devoir la supprimer
  • default = 1

Support linguistique

Bonder permet à ses Utilisateurs de créer les Cartes de Visite dans plus de 60 langues et cette fonctionnalité clé est accessible aussi pour les Utilisateurs API. Pour votre confort nous avons préparé des référentiels contenant des codes des langues supportées par Bonder que vous pouvez apprendre lors de création de votre propre application. Pour gérer les versions linguistiques nous utilisons la variable lang. Vous l'utiliserez pour ajouter, éditer et supprimer des versions linguistiques.
  • Commande repositories
  • Demande 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 \
Succès HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "langList" : [local, lang]
  }
}
langList
valeur
Type
Description
lang
string
code de langue conforme à ISO 639-1:2002
local
string
liste des noms de langues locaux, p. ex. : en => English, ru => Русский
Réponse exemplaire Le serveur renvoie la liste des ressources accessibles : local, anglais, russe, polonais, chinois HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "langList" : ["local", "en", "ru", "pl", "zh"]
  }
}
Utilisez la valeur de langList pour télécharger les ressources dont vous avez besoin. La réponse viendra toujours sous la forme de paire clé : valeur.

Téléchargez la liste des noms de langues locaux

  • Commande repositories
  • Demande 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" \
Succès HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "pl" : "Polski",
    "en" : "English",
    "ru" : "Русский",
    ...,
    "clé" : "valeur"
 }
}

Téléchargez des noms traduits de langues

  • Commande repositories
  • Demande GET
Modifiez la requête ci-dessus conformément à l'exemple ci-dessous: "https:// {{API_URL}} /repositories/ru" \
"https:// {{API_URL}} /repositories/en" \
Si nous ne possédons pas la ressource recherchée dans le référentiel, informez-en le Département de Support. Nous compléterons les manques aussi vite que possible. Si vous ne pouvez pas attendre notre réponse, nous vous suggérons de télécharger des codes de langues accessibles et de préparer vos propres traductions.
Échec HTTP/1.1 200OK
{
  "success" : false,
  "errors" : [code-d'erreur],
  "result" : {}
}
code-d'erreur
Erreur
Description
INVALID_CREDENTIALS_ERROR
Mot de Passe ou e-mail invalide ou token invalide
  • Suggestion: répétez l'autorisation
RESOURCE_NOT_FOUND_ERROR
Le ressource que vous cherchez n'existe pas
  • Suggestion: vérifiez la requête envoyée
autres
voir CODE-D'ERREUR dans la section Autorisation

Création d'un nouveau Profil

  • Commande users
  • Demande post
curl -k -X POST \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users" \
Succès HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "cardId" : string,
    "cardQrc" : string,
    "cardAddr" : string (url)
  }
}
RÉSULTAT DE LA REQUETE
Variable
Type
Description
cardId
string
numéro de la Carte de Visite du Profil créé
  • considère la taille des caractères
  • /^[a-zA-Z0-9]{32,128}$/
cardAddr
string
adresse de la Carte de Visite créée
cardQrc
string
code QR d'adresse de la Carte de Visite, codé dans le base64
Les variables cardId cardQrc cardAddr doivent être stockées localement sur votre serveur et assignées au Profil. La variable cardId est indispensable pour une communication correcte avec API.
Échec HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [code-d'erreur],
  "result" : {}
}
code-d'erreur
Erreur
Description
INVALID_CREDENTIALS_ERROR
Mot de Passe ou e-mail invalide ou token invalide
  • Suggestion: répétez l'autorisation
PROFILE_LIMIT_REACHED_ERROR
Limite des Profils épuisée
  • Suggestion: contact avec le Département de Support pour modifier les Paramètres du Compte
autres
voir CODE-D'ERREUR dans la section Autorisation

Sauvegarde de données

  • Nous n'utilisons pas de schémas fixes de requêtes. Envoyez uniquement les données qui nécéssitent une actualisation.
  • Utilisez la commande PUT pour créer un nouveau Profil.
  • Ajoutez une langue en utilisant des clés lang dans la section :SPAN:translatable.
  • Si le client ne veut pas définir de version linguistique, mettez lang=un ce qui veut dire universel.
  • Modifiez jusqu'à cinq langues dans une requete (actualisation, ajout). Les versions linguistiques supplémentaires (au-dessus de 5) seront négligées.
  • Commande users
  • Demande 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 ' {
Quand cardStatus=0 la Carte de Visite sera désactivée, sans la possibilité de la télécharger.   "settings" : {
    "cardStatus" : "0",
    "usePhoto" : "1"
  },
  "translatable" : {
Utilisez langStatus pour activer et désactiver des langues.     "pl" : {
      "name" : "John",
      "lastname" : "Connor",
      "position" : "Dyrektor Zarządzający"
    },
Lors de l'ajout d'une nouvelle langue, nous mettons langStatus=0. Vous pouvez le contourner en assignant langStatus=1 lors de l'ajout d'une langue.     "en" : {
      "name" : "John",
      "lastname" : "Connor",
      "position" : "Managing Director",
      "displayName" : "The Great John Connor",
      "keywords" : "steel, steel pipe, tubular products"
    },
Malgré la configuration de langStatus=1, la langue donnée ne sera pas prête à être téléchargée jusqu'à ce que la condition soit respectée (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}} \
Succès HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [code-d'erreur],
  "result" : {}
}
Malgré le retour de success=true le serveur peut reporter une erreur quand vous ajoutez une photo de profil à votre requete.
code-d'erreur
Erreur
Description
THUMBNAIL_REJECTED_ERROR
Les données ont été sauvegardées mais l'image chargée a été rejetée par le serveur
  • Suggestion: vérifiez votre générateur d'images
Échec HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [code-d'erreur],
  "result" : {}
}
code-d'erreur
Erreur
Description
INVALID_CREDENTIALS_ERROR
Mot de Passe ou e-mail invalide ou token invalide
  • Suggestion: répétez l'autorisation
CARD_ID_NOT_FOUND_ERROR
La Carte de Visite cardId n'existe pas ou vous n'êtes pas autorisé à modifier cette ressource.
  • Suggestion: vérifiez la requête envoyée
autres
voir CODE-D'ERREUR dans la section Autorisation

Modification des paramètres

Paramètres
Paramètre
Type
Description
status
string
<enable, disable>

Modification du statut de la Carte de Visite

  • Commande users
  • Demande 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}}

Modification du statut de la photo

  • Commande users
  • Demande 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}}

Modification du statut de la langue

  • Commande users
  • Demande 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}}
Succès HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {}
}
Échec HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [code-d'erreur],
  "result" : {}
}
code-d'erreur
Erreur
Description
toutes
voir CODE-D'ERREUR dans la section Sauvegarde des données:/SPAN

Téléchargement des données

  • Commande users
  • Demande 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}}" \
Succès HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
  "translatable" : {
    "lang" : {
      "langStatus" : "1",
      "clé" : "valeur"
    },
    "lang" : {
      "langStatus" : "0",
      "clé" : "valeur"
    }
  },
  "non-translatable" : {
    "thumbnail" : "base64_encoded_image",
    "clé" : "valeur"
  },
  "settings" : {
    "cardStatus" : "1",
    "usePhoto" : "1",
    "cardQrc" : "base64_encoded_image",
    "cardAddr" : "URL",
    "usePhoto" : "1"
  }

}
Échec HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [code-d'erreur],
  "result" : {}
}
code-d'erreur
Erreur
Description
INVALID_CREDENTIALS_ERROR
Mot de Passe ou e-mail invalide ou token invalide
  • Suggestion: répétez l'autorisation
CARD_ID_NOT_FOUND_ERROR
La Carte de Visite cardId n'existe pas ou vous n'êtes pas autorisé à modifier cette ressource.
  • Suggestion: vérifiez la requête envoyée
autres
voir CODE-D'ERREUR dans la section Autorisation

Suppression de données

Suppression de langue

  • Commande users
  • Demande 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}}" \

Suppression de Profil

  • Commande users
  • Demande 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}}" \
Succès HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {}
}
Échec HTTP/1.1 200 OK
{
 "success" : false,
 "errors" : [code-d'erreur],
 "result" : {}
}
code-d'erreur
Erreur
Description
INVALID_CREDENTIALS_ERROR
Mot de Passe ou e-mail invalide ou token invalide
  • Suggestion: répétez l'autorisation
CARD_ID_NOT_FOUND_ERROR
La Carte de Visite cardId n'existe pas ou vous n'êtes pas autorisé à modifier cette ressource.
  • Suggestion: vérifiez la requête envoyée
autres
voir CODE-D'ERREUR dans la section Autorisation