API BM

Bonjour

  1. Lorsqu’on teste les API BM on a cette commande curl qui est proposée pour tester par exemple :

curl -X GET --header ‘Accept: application/json’ --header 'X-BM-ApiKey: ’ ‘https:///api/auth’

D’où sort la clef qui est proposée automatiquement sans que j’ai créé aucune clef d’API ?

  1. Comment s’authentifier avec un login et un mot de passe ? Je rentre le login (l’email), le password et le nom de l’appli et j’obtiens :

curl -X POST --header ‘Content-Type: application/json’ --header ‘Accept: application/json’ --header 'X-BM-ApiKey: ’ -d ‘’ ‘https:///api/auth/login?login=’

{“errorCode”:“UNKNOWN”,“errorType”:“ServerFault”,“message”:“Error during parsing parameter “body””}

Pourrriez-vous m’aiguiller ? Ma version d’API est la 3.1.42634 si je ne me trompe pas.

Merci

Salut,

de mémoire, il y a une merdouille avec la commande curl.
Je t’invite plutöt à passer par un langage de script type Python.

Sinon, la séquence est la suivante :

  1. Récupéronation d’un token de session via ’ ‘https:///api/auth/login?login=’
  2. A chaque appel suivant, on passe le token dans le header ‘X-BM-ApiKey:’

Tu trouveras un exemple concret à cette URL : https://gitlab.bm-stats.org/Other/python/-/blob/master/BlueMind/addAliasToAllMailboxes.py
Il s’agit de la première fonction: “getToken”

Pascal

Merci

j’ai réussi avec curl maintenant j’aimerais avec java en REST :

J’ai fait ceci mais ça ne fonctionne pas :

URL QUERY = new URL( “https:///api/auth/login?login=admin@&origin=A”; );

HttpURLConnection req = (HttpURLConnection) QUERY.openConnection();
req.setRequestMethod( “POST” );
req.setRequestProperty( “Content-Type”, “application/json” );
req.setRequestProperty( “Accept”, “text/html” );

avec soit ça dans le header : req.setRequestProperty( “password”, “” );

soit ceci dans le body : “{“password”:”"}";

ca ne fonctionne pas toujours même pb : {“status”:“Bad”,“message”:null,“authKey”:null,“latd”:null,“authUser”:null}

Le body ne contient que le mot de passe

Super il fallait le savoir !!! j’ai écris pour que tout le monde en profite

body = “”"";

Sinon, je ne sais si tu as connaissance de l’“API DOCS” qui te donne accès à un swagger sur ta plate-forme
Il suffit de 2 choses :

  • installer le paquet qui va bien “bm-docs” (de mémoire)
  • activer le rôle ‘Intégration API Docs’ sur un compte de type “admin”

Oui je l’ai fait mais même sur l’API quand on la teste si on ne sait pas qu’il faut mettre “” et pas seulement dans le champ password ça plante et on ne comprend pas pourquoi …

Et du coup tu m’as donné la réponse à la question 1) : c’est une clef de session et non une clef d’API si j’ai bien compris.

Effectivement, quant tu utilises le swagger, tu es déjà enregistré/authentifé ,et as donc une clé de session (API-key).

Merci pour tes réponses.

Je vais ouvrir une nouvelle discussion avec le pom maven … qui n’est pas compatible avec ma version des API plus récente …

Hello,
pour transférer le mdp via curl, ça sera
-d ‘""’
avec des double-quote dans les single-quotes