From e6ebb0436a8831f46a2838c01fb5586aa9ce6b12 Mon Sep 17 00:00:00 2001 From: templaries Date: Tue, 12 Feb 2013 11:59:28 +0100 Subject: [PATCH 1/2] Update src/main/java/org/scribe/builder/api/LinkedInApi.java --- .../org/scribe/builder/api/LinkedInApi.java | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/scribe/builder/api/LinkedInApi.java b/src/main/java/org/scribe/builder/api/LinkedInApi.java index dc3e58327..0d284974d 100644 --- a/src/main/java/org/scribe/builder/api/LinkedInApi.java +++ b/src/main/java/org/scribe/builder/api/LinkedInApi.java @@ -1,11 +1,40 @@ package org.scribe.builder.api; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; import org.scribe.model.*; +import org.scribe.utils.Preconditions; public class LinkedInApi extends DefaultApi10a { private static final String AUTHORIZE_URL = "https://api.linkedin.com/uas/oauth/authenticate?oauth_token=%s"; - + + private static final Set scopePermissions = new HashSet(); + + /** + * Adds an scope permission parameter. + * + * @param key name of the parameter. + * + * @throws IllegalArgumentException if the parameter is not an OAuth parameter + */ + public static void addScopePermission(String key) + { + Preconditions.checkEmptyString(key, "Scope permission is incorrect. It can't be null or empty"); + + if(!scopePermissions.contains(key)) + scopePermissions.add(key); + } + + /** + * Delete the scope permission parameters. + */ + public static void clearScopePermission() + { + scopePermissions.clear(); + } + @Override public String getAccessTokenEndpoint() { @@ -15,7 +44,16 @@ public String getAccessTokenEndpoint() @Override public String getRequestTokenEndpoint() { - return "https://api.linkedin.com/uas/oauth/requestToken"; + String permissions = ""; + Iterator it = scopePermissions.iterator(); + if(it.hasNext()) + { + permissions = "?scope=" + it.next(); + while(it.hasNext()) + permissions += "+" + it.next(); + } + + return "https://api.linkedin.com/uas/oauth/requestToken" + permissions; } @Override From b21f58effc05077d2cb44b1a14018367208616e7 Mon Sep 17 00:00:00 2001 From: templaries Date: Wed, 13 Feb 2013 11:00:40 +0100 Subject: [PATCH 2/2] Update src/main/java/org/scribe/builder/api/LinkedInApi.java --- .../org/scribe/builder/api/LinkedInApi.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/scribe/builder/api/LinkedInApi.java b/src/main/java/org/scribe/builder/api/LinkedInApi.java index 0d284974d..147070f3f 100644 --- a/src/main/java/org/scribe/builder/api/LinkedInApi.java +++ b/src/main/java/org/scribe/builder/api/LinkedInApi.java @@ -1,5 +1,6 @@ package org.scribe.builder.api; +import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.Set; @@ -10,27 +11,27 @@ public class LinkedInApi extends DefaultApi10a { private static final String AUTHORIZE_URL = "https://api.linkedin.com/uas/oauth/authenticate?oauth_token=%s"; - private static final Set scopePermissions = new HashSet(); + private Set scopePermissions; /** * Adds an scope permission parameter. * - * @param key name of the parameter. + * @param key name of the parameter * * @throws IllegalArgumentException if the parameter is not an OAuth parameter */ - public static void addScopePermission(String key) + public void addScopePermission(String permission) { - Preconditions.checkEmptyString(key, "Scope permission is incorrect. It can't be null or empty"); + Preconditions.checkEmptyString(permission, "Scope permission is incorrect. It can't be null or empty"); - if(!scopePermissions.contains(key)) - scopePermissions.add(key); + if(!scopePermissions.contains(permission)) + scopePermissions.add(permission); } /** - * Delete the scope permission parameters. + * Delete the scope permission parameters. */ - public static void clearScopePermission() + public void clearScopePermission() { scopePermissions.clear(); } @@ -60,6 +61,15 @@ public String getRequestTokenEndpoint() public String getAuthorizationUrl(Token requestToken) { return String.format(AUTHORIZE_URL, requestToken.getToken()); + } + + public LinkedInApi() + { + scopePermissions = new HashSet(); } + public LinkedInApi(String ... scopePermissionsParameters) + { + scopePermissions = new HashSet(Arrays.asList(scopePermissionsParameters)); + } }