From ac4d8c128026de792cc72411744420e89708934f Mon Sep 17 00:00:00 2001 From: nius Date: Tue, 11 Feb 2014 16:58:13 +0800 Subject: [PATCH 1/4] add return value for RennClient.authorizeWithAuthorizationCode to return the access token --- src/main/java/com/renren/api/RennClient.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/renren/api/RennClient.java b/src/main/java/com/renren/api/RennClient.java index aad6ce8..a2ea192 100644 --- a/src/main/java/com/renren/api/RennClient.java +++ b/src/main/java/com/renren/api/RennClient.java @@ -141,7 +141,7 @@ public RennClient(String clientId, String clientSecret) { this.objectMapper = new ObjectMapper(); } - public void authorizeWithAuthorizationCode(String code, String redirectUri) + public AccessToken authorizeWithAuthorizationCode(String code, String redirectUri) throws AuthorizationException { Map params = new HashMap(); @@ -153,6 +153,7 @@ public void authorizeWithAuthorizationCode(String code, String redirectUri) params.put("token_type", AccessToken.Type.MAC.toString()); this.accessToken = requestAccessToken(params); + return this.accessToken; } /** From 179d97929eaf74978d388dc5caa36ae80bd39c34 Mon Sep 17 00:00:00 2001 From: nius Date: Tue, 11 Feb 2014 17:22:07 +0800 Subject: [PATCH 2/4] Add expiresIn for AccessToken --- src/main/java/com/renren/api/AccessToken.java | 23 ++++++++++++++++++- src/main/java/com/renren/api/RennClient.java | 4 +++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/renren/api/AccessToken.java b/src/main/java/com/renren/api/AccessToken.java index 932e908..355a5af 100644 --- a/src/main/java/com/renren/api/AccessToken.java +++ b/src/main/java/com/renren/api/AccessToken.java @@ -24,8 +24,18 @@ public static enum Type { private String macKey; private String macAlgorithm; + + private int expiresIn; + + public int getExpiresIn() { + return expiresIn; + } + + public void setExpiresIn(int expiresIn) { + this.expiresIn = expiresIn; + } - public Type getType() { + public Type getType() { return type; } @@ -45,6 +55,17 @@ public String getMacAlgorithm() { return macAlgorithm; } + public AccessToken(Type type, String accessToken, String refreshToken, String macKey, + String macAlgorithm, int expiresIn) { + super(); + this.type = type; + this.accessToken = accessToken; + this.refreshToken = refreshToken; + this.macKey = macKey; + this.macAlgorithm = macAlgorithm; + this.expiresIn = expiresIn; + } + public AccessToken(Type type, String accessToken, String refreshToken, String macKey, String macAlgorithm) { super(); diff --git a/src/main/java/com/renren/api/RennClient.java b/src/main/java/com/renren/api/RennClient.java index a2ea192..f144cc8 100644 --- a/src/main/java/com/renren/api/RennClient.java +++ b/src/main/java/com/renren/api/RennClient.java @@ -182,8 +182,10 @@ private AccessToken requestAccessToken(Map params) AccessToken.Type type = response.has("mac_algorithm") && response.has("mac_algorithm") ? AccessToken.Type.MAC : AccessToken.Type.Bearer; + + int expiresIn = response.getInt("expires_in"); - return new AccessToken(type, accessToken, refreshToken, macKey, macAlgorithm); + return new AccessToken(type, accessToken, refreshToken, macKey, macAlgorithm, expiresIn); } else { throw new AuthorizationException("Authorization failed with Authorization Code. " From c2b52553d816041bbde23a0a4424489b1dd539fe Mon Sep 17 00:00:00 2001 From: nius Date: Tue, 11 Feb 2014 18:46:11 +0800 Subject: [PATCH 3/4] change access token type to bearer --- src/main/java/com/renren/api/RennClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/renren/api/RennClient.java b/src/main/java/com/renren/api/RennClient.java index f144cc8..c8e635a 100644 --- a/src/main/java/com/renren/api/RennClient.java +++ b/src/main/java/com/renren/api/RennClient.java @@ -150,7 +150,7 @@ public AccessToken authorizeWithAuthorizationCode(String code, String redirectUr params.put("grant_type", "authorization_code"); params.put("code", code); params.put("redirect_uri", redirectUri); - params.put("token_type", AccessToken.Type.MAC.toString()); + params.put("token_type", AccessToken.Type.Bearer.toString()); this.accessToken = requestAccessToken(params); return this.accessToken; @@ -183,7 +183,7 @@ private AccessToken requestAccessToken(Map params) && response.has("mac_algorithm") ? AccessToken.Type.MAC : AccessToken.Type.Bearer; - int expiresIn = response.getInt("expires_in"); + int expiresIn = response.has("expires_in") ? response.getInt("expires_in"): 0; return new AccessToken(type, accessToken, refreshToken, macKey, macAlgorithm, expiresIn); From 0a4265caf67f66d950ed94318cfb48a642bbd597 Mon Sep 17 00:00:00 2001 From: nius Date: Tue, 11 Feb 2014 19:10:48 +0800 Subject: [PATCH 4/4] add user object to AccessToken as the server indeed returns it --- src/main/java/com/renren/api/AccessToken.java | 17 +++++++++++++++-- src/main/java/com/renren/api/RennClient.java | 12 +++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/renren/api/AccessToken.java b/src/main/java/com/renren/api/AccessToken.java index 355a5af..c066e12 100644 --- a/src/main/java/com/renren/api/AccessToken.java +++ b/src/main/java/com/renren/api/AccessToken.java @@ -5,6 +5,8 @@ */ package com.renren.api; +import com.renren.api.service.User; + /** * @author Xun Dai * @@ -26,8 +28,18 @@ public static enum Type { private String macAlgorithm; private int expiresIn; + + private User user; + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } - public int getExpiresIn() { + public int getExpiresIn() { return expiresIn; } @@ -56,7 +68,7 @@ public String getMacAlgorithm() { } public AccessToken(Type type, String accessToken, String refreshToken, String macKey, - String macAlgorithm, int expiresIn) { + String macAlgorithm, int expiresIn, User user) { super(); this.type = type; this.accessToken = accessToken; @@ -64,6 +76,7 @@ public AccessToken(Type type, String accessToken, String refreshToken, String ma this.macKey = macKey; this.macAlgorithm = macAlgorithm; this.expiresIn = expiresIn; + this.user = user; } public AccessToken(Type type, String accessToken, String refreshToken, String macKey, diff --git a/src/main/java/com/renren/api/RennClient.java b/src/main/java/com/renren/api/RennClient.java index c8e635a..62d7d73 100644 --- a/src/main/java/com/renren/api/RennClient.java +++ b/src/main/java/com/renren/api/RennClient.java @@ -14,6 +14,7 @@ import com.renren.api.http.HttpRequest.HttpRequestException; import com.renren.api.json.JSONException; import com.renren.api.json.JSONObject; +import com.renren.api.mapper.JsonMappingException; import com.renren.api.mapper.ObjectMapper; import com.renren.api.service.AppService; import com.renren.api.service.StatusService; @@ -28,6 +29,7 @@ import com.renren.api.service.FeedService; import com.renren.api.service.PlaceService; import com.renren.api.service.CommentService; +import com.renren.api.service.User; import com.renren.api.service.UserService; import com.renren.api.service.FriendService; import com.renren.api.service.ProfileService; @@ -184,8 +186,16 @@ private AccessToken requestAccessToken(Map params) : AccessToken.Type.Bearer; int expiresIn = response.has("expires_in") ? response.getInt("expires_in"): 0; + + User user = null; + if(response.has("user")){ + try { + user = objectMapper.map(response.getJSONObject("user"), User.class); + } catch (JsonMappingException e) { + } + } - return new AccessToken(type, accessToken, refreshToken, macKey, macAlgorithm, expiresIn); + return new AccessToken(type, accessToken, refreshToken, macKey, macAlgorithm, expiresIn, user); } else { throw new AuthorizationException("Authorization failed with Authorization Code. "