Integrate Dropbox in android app, but without login popup

前端 未结 4 1226
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-28 10:43

I want to use the dropbox in my application.I developed a sample application for upload and download files and it ask for authentication.

But I don\'t want to open l

相关标签:
4条回答
  • 2020-12-28 11:08

    How to set access user access token pair manually.

         AppKeyPair appKeys = new AppKeyPair(APP_KEY, APP_SECRET);
         AndroidAuthSession session = new AndroidAuthSession(appKeys, ACCESS_TYPE);
         if (mDBApi == null) {
            mDBApi = new DropboxAPI<AndroidAuthSession>(session);
    
    //  mDBApi.getSession().startAuthentication(Main.this);  //kicks off the web-based authentication
          //you'll have to use the web-based authentication UI one-time to get the ######### values
            String token_key="#########";  
            String token_seceret="#########";
            AccessTokenPair tokens=new AccessTokenPair(token_key,token_seceret);
            mDBApi.getSession().setAccessTokenPair(tokens);     
      //  boolean v=mDBApi.getSession().authenticationSuccessful(); 
        }
    

    First time i run application in debug mode with break point i get the token key and token secret of by entering valid log in detail.and saved(noted) that credential and after that i set them manually as above code then can be log in successfully.

    0 讨论(0)
  • 2020-12-28 11:19

    Please download the project from the below link name as DBRoulette

    https://www.dropbox.com/developers/core

    And create an app in https://www.dropbox.com/developers and get the api key and secret and add this both in DBRoulette.java and in AndroidManifest.xml ...it works..

    0 讨论(0)
  • 2020-12-28 11:25

    In onCreate() write

    AppKeyPair pair = new AppKeyPair(ACCESS_KEY, ACCESS_SECRET);
        session = new AndroidAuthSession(pair, AccessType.APP_FOLDER);
        dropbox = new DropboxAPI<AndroidAuthSession>(session);
    
        SharedPreferences prefs = getSharedPreferences(DROPBOX_NAME, 0);
        String key = prefs.getString(ACCESS_KEY, null);
        String secret = prefs.getString(ACCESS_SECRET, null);
        if (key != null && secret != null) {
            Log.d("key secret", key + "    " + secret);
            AccessTokenPair token = new AccessTokenPair(key, secret);
            dropbox.getSession().setAccessTokenPair(token);
        }
        if (key == null && secret == null)
                dropbox.getSession().startAuthentication(DropboxActivity.this);
    

    And in onResume() write

    if (dropbox.getSession().isLinked()) {
            try {
                loggedIn(true);
                doAction();
            } catch (IllegalStateException e) {
                Toast.makeText(this, "Error during Dropbox authentication",
                Toast.LENGTH_SHORT).show();
            }
    
            } else if (dropbox.getSession().authenticationSuccessful()) {
                try {
                    session.finishAuthentication();
                    TokenPair tokens = session.getAccessTokenPair();
                    SharedPreferences prefs = getSharedPreferences(DROPBOX_NAME, 0);
                    Editor editor = prefs.edit();
                    editor.putString(ACCESS_KEY, tokens.key);
                    editor.putString(ACCESS_SECRET, tokens.secret);
                    editor.commit();
    
                    loggedIn(true);
                    doAction();
    
                } catch (IllegalStateException e) {
                    Toast.makeText(this, "Error during Dropbox authentication",
                            Toast.LENGTH_SHORT).show();
                }
    
            }
    

    It worked fine for me

    0 讨论(0)
  • 2020-12-28 11:26

    Yes. Have a look at their example app DBRoulette.

    0 讨论(0)
提交回复
热议问题