diff --git a/src/Netatmo/Client.cs b/src/Netatmo/Client.cs index 99918dc..f9d158a 100644 --- a/src/Netatmo/Client.cs +++ b/src/Netatmo/Client.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System; +using System.Threading.Tasks; using NodaTime; namespace Netatmo @@ -20,12 +21,18 @@ public Client(IClock clock, string baseUrl, string clientId, string clientSecret public Task GenerateToken(string username, string password, Scope[] scopes = null) { + Console.WriteLine("Client credentials grant type is deprecated since october 2022 and will not work!"); return CredentialManager.GenerateToken(username, password, scopes); } - public void ProvideOAuth2Token(string oauth2Token) + public void ProvideOAuth2Token(string accessToken) { - CredentialManager.ProvideOAuth2Token(oauth2Token); + CredentialManager.ProvideOAuth2Token(accessToken); + } + + public void ProvideOAuth2Token(string accessToken, string refreshToken) + { + CredentialManager.ProvideOAuth2Token(accessToken, refreshToken); } public Task RefreshToken() diff --git a/src/Netatmo/CredentialManager.cs b/src/Netatmo/CredentialManager.cs index 74c6e1d..09347a6 100644 --- a/src/Netatmo/CredentialManager.cs +++ b/src/Netatmo/CredentialManager.cs @@ -45,19 +45,24 @@ public async Task GenerateToken(string username, string password, Scope[] scopes CredentialToken = new CredentialToken(token, clock); } - - public void ProvideOAuth2Token(string oauth2Token) + + public void ProvideOAuth2Token(string accessToken, string refreshToken) { var appToken = new Token() { - AccessToken = oauth2Token, - RefreshToken = null, + AccessToken = accessToken, + RefreshToken = refreshToken, ExpiresIn = 20 }; CredentialToken = new CredentialToken(appToken, clock); } + public void ProvideOAuth2Token(string accessToken) + { + ProvideOAuth2Token(accessToken, null); + } + public async Task RefreshToken() { // TODO : Handle not success status codes (rate limit exceeded, api down, ect) diff --git a/src/Netatmo/IClient.cs b/src/Netatmo/IClient.cs index 8c4f27b..6f992be 100644 --- a/src/Netatmo/IClient.cs +++ b/src/Netatmo/IClient.cs @@ -9,7 +9,7 @@ public interface IClient IAirClient Air { get; } ICredentialManager CredentialManager { get; } Task GenerateToken(string username, string password, Scope[] scopes = null); - void ProvideOAuth2Token(string oauth2Token); + void ProvideOAuth2Token(string accessToken); Task RefreshToken(); } } \ No newline at end of file diff --git a/src/Netatmo/ICredentialManager.cs b/src/Netatmo/ICredentialManager.cs index 6c4b673..e4b5395 100644 --- a/src/Netatmo/ICredentialManager.cs +++ b/src/Netatmo/ICredentialManager.cs @@ -8,7 +8,8 @@ public interface ICredentialManager CredentialToken CredentialToken { get; } string AccessToken { get; } Task GenerateToken(string username, string password, Scope[] scopes = null); - void ProvideOAuth2Token(string oauth2Token); + void ProvideOAuth2Token(string accessToken); + void ProvideOAuth2Token(string accessToken, string refreshToken); Task RefreshToken(); } }