]> git.basschouten.com Git - openhab-addons.git/commitdiff
[mercedesme] New API Migration (#13670)
authorBernd Weymann <bernd.weymann@gmail.com>
Mon, 7 Nov 2022 17:48:48 +0000 (18:48 +0100)
committerGitHub <noreply@github.com>
Mon, 7 Nov 2022 17:48:48 +0000 (18:48 +0100)
* adjust servers and scope
* ensure IPv4 address for callback

Signed-off-by: Bernd Weymann <bernd.weymann@gmail.com>
bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java
bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/AccountConfiguration.java
bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/Utils.java
bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ConfigurationTest.java

index 55fd210f5e2af5866c661879c1a4c6aa7f1129a1..0c616598c59b1c9bf62cc6ccf23b17a4bdbb1636 100644 (file)
@@ -48,8 +48,8 @@ public class Constants {
     public static final String GROUP_LOCATION = "location";
     public static final String GROUP_IMAGE = "image";
 
-    public static final String MB_AUTH_URL = "https://id.mercedes-benz.com/as/authorization.oauth2";
-    public static final String MB_TOKEN_URL = "https://id.mercedes-benz.com/as/token.oauth2";
+    public static final String MB_AUTH_URL = "https://ssoalpha.dvb.corpinter.net/v1/auth";
+    public static final String MB_TOKEN_URL = "https://ssoalpha.dvb.corpinter.net/v1/token";
     public static final String CALLBACK_ENDPOINT = "/mb-callback";
     public static final String OAUTH_CLIENT_NAME = "#byocar";
 
@@ -64,6 +64,7 @@ public class Constants {
     // https://developer.mercedes-benz.com/products/vehicle_status/docs
     public static final String SCOPE_STATUS = "mb:vehicle:mbdata:vehiclestatus";
     public static final String SCOPE_OFFLINE = "offline_access";
+    public static final String SCOPE_OPENID = "openid";
 
     public static final String BASE_URL = "https://api.mercedes-benz.com/vehicledata/v2";
     public static final String ODO_URL = BASE_URL + "/vehicles/%s/containers/payasyoudrive";
index 6c4c43c041ccabf89c503b58c59ca23533fdeede..8f647b12afcc6fb3f6968e5c01627078e7686c9a 100644 (file)
@@ -40,7 +40,7 @@ public class AccountConfiguration {
     // https://developer.mercedes-benz.com/products/electric_vehicle_status/docs#_required_scopes
     public String getScope() {
         StringBuffer sb = new StringBuffer();
-        sb.append(SCOPE_OFFLINE);
+        sb.append(SCOPE_OPENID).append(SPACE).append(SCOPE_OFFLINE);
         if (odoScope) {
             sb.append(SPACE).append(SCOPE_ODO);
         }
index c9545dfde17c5a826134ad3e57dfb3a93a010d53..852021a15887fd09a459bdc509153705c829a8be 100644 (file)
@@ -61,6 +61,7 @@ public class Utils {
     }
 
     public static String getCallbackIP() throws SocketException {
+        // https://stackoverflow.com/questions/901755/how-to-get-the-ip-of-the-computer-on-linux-through-java
         // https://stackoverflow.com/questions/1062041/ip-address-not-obtained-in-java
         for (Enumeration<NetworkInterface> ifaces = NetworkInterface.getNetworkInterfaces(); ifaces
                 .hasMoreElements();) {
index 72714670684b09a6c29e1d5d58fc2d0c47e29a38..69ed1a0f7a50dc3167bdae2fea5134d06779f6e2 100644 (file)
@@ -36,7 +36,7 @@ class ConfigurationTest {
     void testScope() {
         AccountConfiguration ac = new AccountConfiguration();
         assertEquals(
-                "offline_access mb:vehicle:mbdata:payasyoudrive mb:vehicle:mbdata:vehiclestatus mb:vehicle:mbdata:vehiclelock mb:vehicle:mbdata:fuelstatus mb:vehicle:mbdata:evstatus",
+                "openid offline_access mb:vehicle:mbdata:payasyoudrive mb:vehicle:mbdata:vehiclestatus mb:vehicle:mbdata:vehiclelock mb:vehicle:mbdata:fuelstatus mb:vehicle:mbdata:evstatus",
                 ac.getScope());
     }