[EDIT 01/11/2021]
Bonjour,
Attention, Aldes a récemment effectué une mise à jour de son API (MaJ non identifiée pour le moment) avec beaucoup d’instabilité : la sauvegarde des consignes thermostats n’est pas « stable », elle change sans raison. Ma procédure (topic du 15 aout) reste quand d’actualité mais, il faut trouver une « bidouille » pour conserver les consignes.
Cordialement
Bonsoir,
Vu que Aldes ne propose pas d’API, je me suis amusé à prendre l’APK Aldes Connect.
J’ai décompilé l’APK, et avec un éditeur de code, je cherche comment se connecter à l’API via Postman.
J’ai récupéré les informations suivantes :
URL : https://aldesiotsuite-aldeswebapi.azurewebsites.net/oauth2/token?grant_type=password
Header Content-Type : application/x-www-form-urlencoded
J’ai bien entendu un compte pour tester via Postman. Justement, dans Postman, il me retourne une erreur du type : "The mandatory ‹ grant_type › parameter is missing’. Quand je passe en paramètre ‹ grant_type › et une valeur bidon, toujours le même message.
J’ai également récupéré le code Java de ce qui pour moi est la fonction d’authentification, si ca peut aider :
.class public interface abstract Lcom/keyrus/aldes/data/net/apis/authentication/AuthApi;
.super Ljava/lang/Object;
.source "AuthApi.kt"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/keyrus/aldes/data/net/apis/authentication/AuthApi$DefaultImpls;
}
.end annotation
.annotation runtime Lkotlin/Metadata;
bv = {
0x1,
0x0,
0x3
}
d1 = {
"\u0000$\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\u0008\u0003\n\u0002\u0018\u0002\n\u0002\u0008\u0006\u0008f\u0018\u00002\u00020\u0001J,\u0010\u0002\u001a\u0008\u0012\u0004\u0012\u00020\u00040\u00032\u0008\u0008\u0001\u0010\u0005\u001a\u00020\u00062\u0008\u0008\u0001\u0010\u0007\u001a\u00020\u00062\u0008\u0008\u0001\u0010\u0008\u001a\u00020\u0006H\'JP\u0010\t\u001a\u000e\u0012\n\u0012\u0008\u0012\u0004\u0012\u00020\u00010\n0\u00032\u0008\u0008\u0001\u0010\u000b\u001a\u00020\u00062\u0008\u0008\u0001\u0010\u000c\u001a\u00020\u00062\u0008\u0008\u0001\u0010\r\u001a\u00020\u00062\u0008\u0008\u0001\u0010\u000e\u001a\u00020\u00062\u0008\u0008\u0003\u0010\u000f\u001a\u00020\u00062\u0008\u0008\u0003\u0010\u0008\u001a\u00020\u0006H\'\u00a8\u0006\u0010"
}
d2 = {
"Lcom/keyrus/aldes/data/net/apis/authentication/AuthApi;",
"",
"authentication",
"Lio/reactivex/Single;",
"Lcom/keyrus/aldes/data/database/models/Token;",
"email",
"",
"password",
"grantType",
"authorization",
"Lretrofit2/Response;",
"clientId",
"clientSecret",
"productMacAddress",
"redirectUri",
"responseType",
"app_aldesProdRelease"
}
k = 0x1
mv = {
0x1,
0x4,
0x0
}
.end annotation
# virtual methods
.method public abstract authentication(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/reactivex/Single;
.param p1 # Ljava/lang/String;
.annotation runtime Lretrofit2/http/Field;
value = "username"
.end annotation
.end param
.param p2 # Ljava/lang/String;
.annotation runtime Lretrofit2/http/Field;
value = "password"
.end annotation
.end param
.param p3 # Ljava/lang/String;
.annotation runtime Lretrofit2/http/Field;
value = "grant_type"
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/lang/String;",
"Ljava/lang/String;",
")",
"Lio/reactivex/Single<",
"Lcom/keyrus/aldes/data/database/models/Token;",
">;"
}
.end annotation
.annotation runtime Lretrofit2/http/FormUrlEncoded;
.end annotation
.annotation runtime Lretrofit2/http/POST;
value = "/oauth2/token"
.end annotation
.end method
.method public abstract authorization(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/reactivex/Single;
.param p1 # Ljava/lang/String;
.annotation runtime Lretrofit2/http/Field;
value = "client_id"
.end annotation
.end param
.param p2 # Ljava/lang/String;
.annotation runtime Lretrofit2/http/Field;
value = "client_secret"
.end annotation
.end param
.param p3 # Ljava/lang/String;
.annotation runtime Lretrofit2/http/Field;
value = "product_mac_address"
.end annotation
.end param
.param p4 # Ljava/lang/String;
.annotation runtime Lretrofit2/http/Field;
value = "redirect_uri"
.end annotation
.end param
.param p5 # Ljava/lang/String;
.annotation runtime Lretrofit2/http/Field;
value = "response_type"
.end annotation
.end param
.param p6 # Ljava/lang/String;
.annotation runtime Lretrofit2/http/Field;
value = "grant_type"
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/lang/String;",
"Ljava/lang/String;",
"Ljava/lang/String;",
"Ljava/lang/String;",
"Ljava/lang/String;",
")",
"Lio/reactivex/Single<",
"Lretrofit2/Response<",
"Ljava/lang/Object;",
">;>;"
}
.end annotation
.annotation runtime Lretrofit2/http/FormUrlEncoded;
.end annotation
.annotation runtime Lretrofit2/http/POST;
value = "/oauth2/authorize"
.end annotation
.end method