diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb68289f4352bf149aa31a2c9940faa99174224..5d19981032aa01b060f5a568641d7a8840cc90dc 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/tech/essensys/operateapiexample/Authenticate.java b/app/src/main/java/tech/essensys/operateapiexample/Authenticate.java
index 0b4c030be9e1e2fa5bb4bbb1d168b7ac101e1e69..faa92be12c35b7b5e80b2fdf41ab214adea13bb9 100644
--- a/app/src/main/java/tech/essensys/operateapiexample/Authenticate.java
+++ b/app/src/main/java/tech/essensys/operateapiexample/Authenticate.java
@@ -23,7 +23,6 @@ import okhttp3.Response;
public class Authenticate {
private String oauth2URL = "https://api.occupie.com/oauth2/token";
- private String clientSecret = "";
private SharedPrefs sharedPrefs;
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
@@ -33,10 +32,10 @@ public class Authenticate {
sharedPrefs = new SharedPrefs(context);
}
- public void login(String username, String password) {
+ public void login(String clientId, String clientSecret, String username, String password) {
String postBody = "grant_type=password"
- + "&client_id=trustedclient"
+ + "&client_id=" + clientId
+ "&client_secret=" + clientSecret
+ "&scope=hubapi"
+ "&username=" + username + "&password=" + password;
@@ -48,8 +47,23 @@ public class Authenticate {
} catch (IOException e) {
e.printStackTrace();
}
+ }
+
+ public void refreshAccessToken(String clientId, String clientSecret, String refreshToken) {
+
+ String postBody = "grant_type=refresh_token"
+ + "&client_id=" + clientId
+ + "&client_secret=" + clientSecret
+ + "&scope=hubapi"
+ + "&refresh_token=" + refreshToken;
+ Log.d("postBody", postBody);
+ try {
+ postRequest(oauth2URL, postBody);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
@@ -89,6 +103,44 @@ public class Authenticate {
});
}
+ /*
+ void refreshAccessTokenPostRequest(String postUrl, String postBody) throws IOException {
+
+ OkHttpClient client = new OkHttpClient();
+
+ RequestBody body = RequestBody.create(FORM_ENCODED, postBody);
+
+ Request request = new Request.Builder()
+ .url(postUrl)
+ .post(body)
+ .build();
+
+ client.newCall(request).enqueue(new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+ call.cancel();
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+
+ final String theResponse = response.body().string();
+
+ Log.d("theResponse",theResponse);
+
+ try {
+ JSONObject json = new JSONObject(theResponse);
+ final String accesstoken = json.getString("access_token");
+ final String refreshtoken = json.getString("refresh_token");
+ saveTheTokens(accesstoken, refreshtoken);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+ */
+
void saveTheTokens(String accessToken, String refreshToken) {
sharedPrefs.setAccessToken(accessToken);
sharedPrefs.setRefreshToken(refreshToken);
diff --git a/app/src/main/java/tech/essensys/operateapiexample/MainActivity.java b/app/src/main/java/tech/essensys/operateapiexample/MainActivity.java
index bc0b51c05252c7e83552f75248f7fd3efc2fb512..add2de26a2bf82d76100d7a9ecc7e538d7e29dbd 100644
--- a/app/src/main/java/tech/essensys/operateapiexample/MainActivity.java
+++ b/app/src/main/java/tech/essensys/operateapiexample/MainActivity.java
@@ -14,6 +14,15 @@ import android.widget.Button;
public class MainActivity extends AppCompatActivity {
+ //
+ // Need to provide credentials below
+ //
+
+ private String clientId = "";
+ private String clientSecret = "";
+ private String userId = "";
+ private String userPassword = "";
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -30,13 +39,20 @@ public class MainActivity extends AppCompatActivity {
}
});
- final Button button = (Button) findViewById(R.id.loginButton);
- button.setOnClickListener(new View.OnClickListener() {
+ final Button loginButton = (Button) findViewById(R.id.loginButton);
+ loginButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
login();
}
});
+ final Button refreshAccessTokenButton = (Button) findViewById(R.id.refreshAccessTokenButton);
+ refreshAccessTokenButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ refreshAccessToken();
+ }
+ });
+
final Button getArea1 = (Button) findViewById(R.id.getArea1);
getArea1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@@ -87,7 +103,14 @@ public class MainActivity extends AppCompatActivity {
private void login() {
Authenticate authenticate = new Authenticate(this);
- authenticate.login("user@domain.com", "yourpassword");
+ authenticate.login(clientId, clientSecret, userId, userPassword);
+ }
+
+ private void refreshAccessToken() {
+ SharedPrefs sharedPrefs = new SharedPrefs(this);
+ String refreshToken = sharedPrefs.getRefreshToken();
+ Authenticate authenticate = new Authenticate(this);
+ authenticate.refreshAccessToken(clientId,clientSecret, refreshToken);
}
private void getArea() {
diff --git a/app/src/main/java/tech/essensys/operateapiexample/SharedPrefs.java b/app/src/main/java/tech/essensys/operateapiexample/SharedPrefs.java
index 31dfea69291a005ed75d78cf9625b38cacc220ac..38e221c7b781b9968d259b77dbce043fef6f7e2d 100644
--- a/app/src/main/java/tech/essensys/operateapiexample/SharedPrefs.java
+++ b/app/src/main/java/tech/essensys/operateapiexample/SharedPrefs.java
@@ -34,4 +34,7 @@ public class SharedPrefs extends Activity {
public String getAccessToken() {
return preferences.getString("accessToken","");
}
+ public String getRefreshToken() {
+ return preferences.getString("refreshToken","");
+ }
}
diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml
index 5d34431d43251f5c7ed277cbe04155ec3281b2df..727839c88673a43afd43a08502a3649dc9c1cde8 100644
--- a/app/src/main/res/layout/content_main.xml
+++ b/app/src/main/res/layout/content_main.xml
@@ -14,33 +14,43 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Get Access Token"
- app:layout_constraintBottom_toTopOf="parent"
+ android:layout_marginTop="10dp"
+ android:layout_marginBottom="10dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
+
+
+ app:layout_constraintTop_toBottomOf="@+id/refreshAccessTokenButton" />
+ app:layout_constraintTop_toBottomOf="@id/getArea1" />
+ app:layout_constraintTop_toBottomOf="@id/putAccount1" />