2015-12-08 39 views
0
@RequestMapping(value = "/smartsheet.htm", method= RequestMethod.GET) 
    public void smartSheetAuth(HttpServletRequest req,HttpServletResponse resp,HttpSession session){ 
     String userEmail = ************; 

     StringBuilder authUrl = new StringBuilder(); 
     authUrl.append("https://app.smartsheet.com/b/orgsso/"); 
     authUrl.append(gPlusUser.getDomain()); 
     /* 
     authUrl.append("?loginEmail="); 
     authUrl.append(userEmail);*/ 


     oauth = new OAuthFlowBuilder() 
       .setAuthorizationURL(authUrl.toString()) 
       .setClientId(EnvironmentVariables.SMARTSHEET_CLIENT_ID) 
       .setClientSecret(EnvironmentVariables.SMARTSHEET_CLIENT_SECRET) 
       .setRedirectURL(APPLICATION_BASE_URL + RequestMapping value to be redirected to) 
       .build(); 
     EnumSet<AccessScope> smartsheetAccessScopes = EnumSet.of(AccessScope.READ_SHEETS,AccessScope.SHARE_SHEETS); 
     String url = oauth.newAuthorizationURL(smartsheetAccessScopes, "MY_STATE"); 

     System.out.println("url >>>"+url); 
     resp.sendRedirect(url); 
    } 

我想要做的是组织登录。但是,经过身份验证,而不是转到OAuthFlowBuilder中指定的重定向url之后,它将我带到我的smartsheet主页。如果我不setAuthorizationURL(),我必须从选项中选择Oraganization Login。它有点不错,但我试图实现的是直接进入SSO登录页面,而不是单击组织登录选项,然后再继续。错误重定向到特定页面后Smartsheet Auth

我做了一个应用程序,使用smartsheet的开发人员工具选项,并提到了相同的重定向网址。似乎没有任何工作。

Now redirect url is optional,但是如果不指定IllegalStateException提示。

使用 smartsheet-SDK-Java的2.0.0.jar

回答

0

,你想实现的流量是不可能的。即https://app.smartsheet.com/b/orgsso/不是Smartsheet oAuth的有效授权URL。

取而代之(如Smartsheet oAuth documentation中所述),您必须使用此URL:https://app.smartsheet.com/b/authorize。从那里,用户可以选择适当的选项来指定他们想要如何登录。

+0

它适用于[DEFAULT_AUTHORIZATION_URL](https://github.com/smartsheet-platform/smartsheet-java-sdk/blob/master/src/main/java/com/smartsheet/api/oauth/OAuthFlowBuilder.java )。但是OAuthFlowBuilder给了一个setter方法setAuthorizationURL()来将它设置为其他的url。所以默认情况下它可以工作,但用户必须点击组织登录选项才能进入SSO登录页面。我想要一个选项,您可以以某种方式直接将用户路由到SSO页面,因为该电子邮件是由应用程序提供的。 – akgaur

+0

在阅读文档后,我找不到列出工作表协作者的方法。有没有一种方法,我错过了。 – akgaur

+0

是的,我明白你想要达到什么成绩 - 但这是不可能的。目前,授权URL(https://app.smartsheet.com/b/authorize)只有一个有效值 - 即使用SDK,您必须使用DEFAULT_AUTHORIZATION_URL - 您无法将其设置为任何其他值。 (不知道为什么OAuthFlowBuilder提供setter方法“setAuthorizationURL()” - 这可能已被无意地包含在SDK中。) –