From b1918e67c2c970949da0a54b43270e4319cb9a15 Mon Sep 17 00:00:00 2001 From: Michael Geramb Date: Fri, 6 Sep 2019 19:08:12 +0200 Subject: [PATCH] [amazonechocontrol] Bugfix for login in Australia (#6034) Signed-off-by: Michael Geramb --- .../internal/Connection.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/Connection.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/Connection.java index f98750e8cfbd5..8f95e4070985d 100755 --- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/Connection.java +++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/Connection.java @@ -720,15 +720,18 @@ public String registerConnectionAsApp(String oAutRedirectUrl) if (StringUtils.isEmpty(this.refreshToken)) { throw new ConnectionException("Error: No refresh token received"); } - String usersMeResponseJson = makeRequestAndReturnString("GET", - "https://alexa.amazon.com/api/users/me?platform=ios&version=2.2.223830.0", null, false, null); - JsonUsersMeResponse usersMeResponse = parseJson(usersMeResponseJson, JsonUsersMeResponse.class); - - URI uri = new URI(usersMeResponse.marketPlaceDomainName); - String host = uri.getHost(); - setAmazonSite(host); try { - exhangeToken(); + exchangeToken(); + // Check which is the owner domain + String usersMeResponseJson = makeRequestAndReturnString("GET", + "https://alexa.amazon.com/api/users/me?platform=ios&version=2.2.223830.0", null, false, null); + JsonUsersMeResponse usersMeResponse = parseJson(usersMeResponseJson, JsonUsersMeResponse.class); + URI uri = new URI(usersMeResponse.marketPlaceDomainName); + String host = uri.getHost(); + + // Switch to owner domain + setAmazonSite(host); + exchangeToken(); tryGetBootstrap(); } catch (Exception e) { logout(); @@ -749,7 +752,7 @@ public String registerConnectionAsApp(String oAutRedirectUrl) return deviceName; } - private void exhangeToken() throws IOException, URISyntaxException { + private void exchangeToken() throws IOException, URISyntaxException { this.renewTime = 0; String cookiesJson = "{\"cookies\":{\"." + getAmazonSite() + "\":[]}}"; @@ -808,7 +811,7 @@ public boolean checkRenewSession() throws UnknownHostException, URISyntaxExcepti renewTokenPostData, false, null); parseJson(renewTokenRepsonseJson, JsonRenewTokenResponse.class); - exhangeToken(); + exchangeToken(); return true; } return false;