diff --git a/bundles/org.openhab.binding.tidal/src/main/java/org/openhab/binding/tidal/internal/TidalBindingConstants.java b/bundles/org.openhab.binding.tidal/src/main/java/org/openhab/binding/tidal/internal/TidalBindingConstants.java index 00f827dd707..3493d4cc149 100644 --- a/bundles/org.openhab.binding.tidal/src/main/java/org/openhab/binding/tidal/internal/TidalBindingConstants.java +++ b/bundles/org.openhab.binding.tidal/src/main/java/org/openhab/binding/tidal/internal/TidalBindingConstants.java @@ -26,14 +26,16 @@ import org.openhab.core.thing.ThingTypeUID; public class TidalBindingConstants { // List of Tidal services related urls, information - public static final String TIDAL_ACCOUNT_URL = "https://accounts.tidal.com"; - public static final String TIDAL_AUTHORIZE_URL = TIDAL_ACCOUNT_URL + "/authorize"; - public static final String TIDAL_API_TOKEN_URL = TIDAL_ACCOUNT_URL + "/api/token"; + public static final String TIDAL_LOGIN_URL = "https://login.tidal.com"; + public static final String TIDAL_AUTH_URL = "https://auth.tidal.com"; + public static final String TIDAL_AUTHORIZE_URL = TIDAL_LOGIN_URL + "/authorize"; + public static final String TIDAL_API_TOKEN_URL = TIDAL_AUTH_URL + "/v1/oauth2/token"; /** * Tidal scopes needed by this binding to work. */ - public static final String TIDAL_SCOPES = Stream.of("user-read-playback-state", "user-modify-playback-state", - "playlist-read-private", "playlist-read-collaborative").collect(Collectors.joining(" ")); + public static final String TIDAL_SCOPES = Stream.of("playlists.read", "entitlements.read", "collection.read", + "playlists.write", "collection.write", "user.read", "recommendations.read", "playback") + .collect(Collectors.joining(" ")); public static final String TIDAL_API_URL = "https://api.tidal.com/v1/me"; public static final String TIDAL_API_PLAYER_URL = TIDAL_API_URL + "/player"; diff --git a/bundles/org.openhab.binding.tidal/src/main/java/org/openhab/binding/tidal/internal/handler/TidalBridgeHandler.java b/bundles/org.openhab.binding.tidal/src/main/java/org/openhab/binding/tidal/internal/handler/TidalBridgeHandler.java index 968c2315200..91070074fbc 100644 --- a/bundles/org.openhab.binding.tidal/src/main/java/org/openhab/binding/tidal/internal/handler/TidalBridgeHandler.java +++ b/bundles/org.openhab.binding.tidal/src/main/java/org/openhab/binding/tidal/internal/handler/TidalBridgeHandler.java @@ -82,8 +82,7 @@ import org.slf4j.LoggerFactory; * @author Hilbrand Bouwkamp - Just a lot of refactoring */ @NonNullByDefault -public class TidalBridgeHandler extends BaseBridgeHandler - implements TidalAccountHandler, AccessTokenRefreshListener { +public class TidalBridgeHandler extends BaseBridgeHandler implements TidalAccountHandler, AccessTokenRefreshListener { private static final CurrentlyPlayingContext EMPTY_CURRENTLY_PLAYING_CONTEXT = new CurrentlyPlayingContext(); private static final Album EMPTY_ALBUM = new Album(); @@ -256,7 +255,14 @@ public class TidalBridgeHandler extends BaseBridgeHandler if (oAuthService == null) { throw new OAuthException("OAuth service is not initialized"); } - return oAuthService.getAuthorizationUrl(redirectUri, null, thing.getUID().getAsString()); + oAuthService.addExtraAuthField("test", "toto"); + String oAuthorizationUrl = oAuthService.getAuthorizationUrl(redirectUri, null, + thing.getUID().getAsString()); + + String cChallenge = "E9Melhoa2OwvFrEMTJguCHaoeKt8URWbuGJSstw-cM"; + oAuthorizationUrl = oAuthorizationUrl + "&code_challenge_method=S256"; + oAuthorizationUrl = oAuthorizationUrl + "&code_challenge=" + cChallenge; + return oAuthorizationUrl; } catch (final OAuthException e) { logger.debug("Error constructing AuthorizationUrl: ", e); return ""; diff --git a/bundles/org.openhab.binding.tidal/src/main/resources/templates/player.html b/bundles/org.openhab.binding.tidal/src/main/resources/templates/player.html index 4cf609ad1f3..79ca1fb89f4 100644 --- a/bundles/org.openhab.binding.tidal/src/main/resources/templates/player.html +++ b/bundles/org.openhab.binding.tidal/src/main/resources/templates/player.html @@ -1,4 +1,4 @@
Connect to Tidal: ${player.name}${player.user} -

Authorize Player

+

Authorize Player