Java,Dropbox:获取访问令牌而无需用户复制粘贴。

时间:2015-07-09 11:48:37

标签: java spring dropbox dropbox-api

我正在开发一个Spring-MVC应用程序,我想将Dropbox功能集成到它中。当我阅读这些例子时,我看到有一些代码可供我使用。但这涉及用户复制粘贴访问令牌,这在现实世界的应用程序中不适用,而且在验证完成时我找不到设置重定向URL的方法。我应该做出哪些更改,以便代码不需要复制粘贴,但可以直接检索。

代码:

 public void connectToDropbox() {

        DbxAppInfo appInfo = new DbxAppInfo(APP_KEY, APP_SECRET);

        DbxRequestConfig config = new DbxRequestConfig("JavaTutorial/1.0",
                Locale.getDefault().toString());

        DbxWebAuthNoRedirect webAuth = new DbxWebAuthNoRedirect(config, appInfo);


        // Have the user sign in and authorize your app.
        String authorizeUrl = webAuth.start();
        System.out.println("1. Go to: " + authorizeUrl);
        System.out.println("2. Click \"Allow\" (you might have to log in first)");
// No, I dont want to copy the authorization code. 
        System.out.println("3. Copy the authorization code.");
        String code = null;
        try {
            code = new BufferedReader(new InputStreamReader(System.in)).readLine().trim();
        } catch (IOException e) {
            e.printStackTrace();
        }

控制器代码:

 @RequestMapping(value = "/logindropbox")
    public String loginIntoDropbox(){
        ConnectDropbox connectDropbox = new ConnectDropbox();
        connectDropbox.connectToDropbox();
        return "rediect:/dashboard";
    }

我只能在SO上找到一个答案,但这没用。你能帮忙的话,我会很高兴。非常感谢。 : - )

1 个答案:

答案 0 :(得分:2)

[交叉链接供参考:https://www.dropboxforum.com/hc/communities/public/questions/203308909-Dropbox-authentication-without-copy-pasting-the-access-token-manually-in-Java-]

Dropbox Java Core SDK tutorial确实使用用户手动复制和粘贴授权码的流程。这是使用提供的DbxWebAuthNoRedirect类完成的。

对于可以使用重定向URI自动提供授权代码的应用,您将需要使用DbxWebAuth类。该文档包含一些示例代码:

https://dropbox.github.io/dropbox-sdk-java/api-docs/v1.7.x/com/dropbox/core/DbxWebAuth.html

还有一个“网络文件浏览器”示例应用随SDK download一起使用DbxWebAuth