Use Case exports
Gestion des exports
Le module d’export permet d’exporter une liste d’emails avec leurs champs. Et pour définir la population exportée, vous utilisez une cible créée en amont.
info
Vous trouverez la documentation pour créer une cible ici.
Pour créer un export d’abonnés, vous devez utiliser l’appel POST api/{idsite}/exports/subscribers.
Les paramètres à spécifier dans l'url sont les suivants:
Nom | Description | Type | Informations complémentaires |
---|---|---|---|
idsite | Identifiant de site MindBaz | Nombre entier | Obligatoire |
Dans le corps de la requête, les paramètres à passer sous la forme "application/json, text/json" sont les suivants:
Nom | Description | Type | Informations complémentaires |
---|---|---|---|
compress | Indique comment Compresser les données. | ECompressionMode | Aucune |
filename | Indique le nom du fichier à exporter. Un suffixe est ajouté automatiquement à la fin du nom de fichier sous la forme yyyyMMddHHmmss. L’extension csv est ajoutée automatiquement. Le nom de fichier final sera donc sous la forme "myFilename_yyyyMMddHHmmss.csv". Vous pouvez aussi exporter dans un sous répertoire en le spécifiant dans filename. ex : “myDirectory\myFilename”. Attention, le répertoire doit déjà être créé. | Chaine de caractères | Aucune |
idRepository | Id d’un sftp externe à mindbaz pour déposer le fichier. Pour récupérer la liste des repositories, vous pouvez appeler GET /api/{idsite}/exports/repositories. Pour en ajouter, il faut faire une demande au service client. | Nombre entier | null pour le stockage par défaut (sftp mindbaz) |
idsFields | Indique la liste des champs à insérer dans l'export. | Collection de Chaine de caractères | Obligatoire |
idTarget | Indique l'identifiant de cible à utiliser pour l'export. | Nombre entier | Obligatoire |
quantity | Indique le nombre de lignes à exporter, 0=tout. | Nombre entier | Aucune |
typeList | Indique comment exporter les champs de type liste. | ETypeList | Obligatoire |
encoding | Indique comment sont encodées les données. | EEncodingType | Obligatoire |
idsEncodeFields | Indique la liste des champs à encoder dans une colonne (placée en dernière position du fichier). Les champs fournis seront concaténés puis hashés en fonction de l’algorithme défini dans le paramètre encoding. Par ex, si je veux avoir une colonne avec un hash md5 correspondant à l'email+nom+prenom, il faut mettre idsEncodeFields = [1,14,15] et encoding=”MD5”. La nouvelle colonne aura comme nom le type utilisé pour le hash (MD5 dans l’exemple). Attention, l’ordre des champs est important! | Collection de Chaine de caractères | Aucune |
Le type ECompressionMode est de type Enum:
Nom | Valeur | Description |
---|---|---|
GZip | 1 | Compression GZip |
Zip | 2 | Compression Zip |
Le type EEncodingType est de type Enum:
Nom | Valeur | Description |
---|---|---|
None | 0 | Pas d'encodage, en clair |
MD5 | 1 | Hash MD5 |
SHA1 | 2 | Hash SHA1 |
SHA2_256 | 3 | Hash SHA256 |
SHA2_512 | 4 | Hash SHA512 |
Le type ETypeList est de type Enum:
Nom | Valeur |
---|---|
ID | 0 |
VALUE | 1 |
{
"idTarget": 1161,
"idsFields": [
"0",
"1"
],
"filename": "test_export_api",
"quantity": 0,
"typeList": "ID",
"compress": "GZip",
"encoding": "None",
"idRepository": 0
}
En retour d'appel j'obtiens les informations de l'export nouvellement créé:
{
"success": true,
"data": true,
"error": null,
"typeName": "Boolean"
}
Codeline
- C#
- Java
- Python
string token = ""; //Valeur du token récupéré pour l'authentification
string idSite = ""; //Valeur de l'identifiant du site
var client = new RestClient("https://api.mindbaz.com/api/" + idSite + "/exports/subscribers");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer " + token);
var body = @"{""idTarget"": 1161,""idsFields"": [""0"",""1""],""filename"": ""test_export_api"",""quantity"": 0, ""typeList"": ""ID"",""compress"": ""GZip"",""encoding"": ""None"",""idRepository"": 0 }";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://api.mindbaz.com/api/{idsite}/exports/subscribers")
.header("Content-Type", "application/json")
.header("Authorization", "Bearer `TOKEN`")
.body("{\"idTarget\": 1161,\"idsFields\": [\"0\",\"1\"],\"filename\": \"test_export_api\",\"quantity\": 0, \"typeList\": \"ID\",\"compress\": \"GZip\",\"encoding\": \"None\",\"idRepository\": 0 }")
.asString();
import http.client
import json
conn = http.client.HTTPSConnection("api.mindbaz.com")
payload = json.dumps({
"idTarget": 1161,
"idsFields": [
"0",
"1"
],
"filename": "test_export_api",
"quantity": 0,
"typeList": "ID",
"compress": "GZip",
"encoding": "None",
"idRepository": 0
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer `TOKEN`'
}
conn.request("POST", "/api/{idsite}/exports/subscribers", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))