API TransfertPro

Authentification de l'utilisateur

TransfertPro gère une authentification basée sur des tokens de type Bearer via le protocole OAuth2. Récupération du Token auprès du serveur : En C#

string login; // Login de l'utilisateur
string password; // Mot de passe de l'utilisateur
Token token; // Token d'authentification de l'utilisateur

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("https://ext.transfertpro.com/");
    client.Timeout = TimeSpan.FromSeconds(30);
    client.DefaultRequestHeaders.Accept.Clear();
    StringContent queryString = new StringContent(string.Format("grant_type={0}&username={1}&password={2}",
            "password", Uri.EscapeDataString(login), Uri.EscapeDataString(password)));

    var result = client.PostAsync("/Token", queryString).ContinueWith(task =>
    {
        try
        {
            var response = task.Result;

            if (response.IsSuccessStatusCode)
            {
                string json = response.Content.ReadAsStringAsync().Result;
                token = JsonConvert.DeserializeObject(json);
            }
            else
            {
                // Gérer les codes status 400, 401, 403...
            }
        }
        catch (Exception ex)
        {
            // Gérer les exceptions
        }
    });

    result.Wait();
}

En JavaScript
    
        async function getToken(login, password) {
        const url = 'https://ext.transfertpro.com/Token';
        let headers = new Headers();
        headers.append('Content-Type', 'application/x-www-form-urlencoded');
        let body = `grant_type=password&username=${encodeURIComponent(login)}&password=${encodeURIComponent(password)}`;

        const response = await fetch(url, {
        method: 'POST',
        headers: headers,
        body: body,
        });

        if (response.ok) {
        const token = await response.json();
        console.log('Token:', token);
        return token;
        } else {
        console.error('Error:', response.statusText);
        }
        }

        const login = 'votre login';
        const password = 'votre mot de passe';
        getToken(login, password);
    
Sur POSTMAN
    
        
            Méthode : POST 
URL : https://ext.transfertpro.com/Token
Headers :
Content-Type : application/x-www-form-urlencoded
Body :
Sélectionnez x-www-form-urlencoded
grant_type : password
username : votre_login
password : votre_mot_de_passe
Classe contenant les informations du Token :

public class Token
{
    /// <summary>
    /// Obtient ou définit la valeur du jeton d'accès
    /// </summary>
    public string Access_token { get; set; }

    /// <summary>
    /// Obtient ou définit le type de jeton
    /// </summary>
    public string Token_type { get; set; }

    /// <summary>
    /// Obtient ou définit la durée de validité du token
    /// </summary>
    public string Expires_in { get; set; }

    /// <summary>
    /// Obtient ou définit l'utilisateur associé au jeton
    /// </summary>
    public string UserName { get; set; }

    /// <summary>
    /// Obtient ou définit la date à laquelle le jeton a été demandé
    /// </summary>
    [JsonProperty(".issued")]
    public DateTime Issued { get; set; }

    /// <summary>
    /// Obtient ou définit la date à laquelle le jeton expire
    /// </summary>
    [JsonProperty(".expires")]
    public DateTime Expires { get; set; }
}

Passage du Token dans les requêtes :

protected HttpClient GetHttpClient()
{
    var client = new HttpClient();
    client.BaseAddress = new Uri("https://ext.transfertpro.com/");
    client.Timeout = TimeSpan.FromMinutes(30);
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); // Où token est l'instance du Token préalablement récupéré sur le serveur.
    return client;
}