This Tutorial belongs to the Dropbox SDK V2 - Java Library
See this thread for preparing your app to use this Library.
Especially the Manifest-Entry
=========================================================
To use Dropbox inside your App you need a accesstoken.
There are two ways to get a token to work with your or someone others Dropbox.
1. Inside the developer console at Dropbox you can generate a token and use this token then.
The token will be part of your apk and may be extracted easily.
You can use this way if you have an App which is not published on Playstore.
Maybe private apps for internal use only.
This token gives you access to YOUR Dropbox only!
The token will not expire except you generate a new token to use.
2. You ask the user to connect your App to his Dropbox.
To do this you need to call the Authentification-Flow from Dropbox.
A token you get with this way will not expire (sure you can revoke such a Token with a call to revoketoken in the DbxUserAuthRequests object. But usually you dont want to use it). I want to call it a "One-Time token for a User"
You can do it this way:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Then, to connect a Users Dropbox you start the Request from within a Button click event for ex.
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
A Dropbox Activity will appear and ask the User to login and then give your app the rights to use his Dropbox.
If he accept the request then DbxAuth´s OAuth2Token will be filled in Activity_resume
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Once you got the token you should write the token down in a KVS or a Database to not loose it!
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Now as we got the token we can start to Initialize Dropbox to use this token and get access to the users Dropbox based on the token. Additionally we finalize the initialisation of the different Dropbox Request-types.
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
After this Dropbox should be ready initialized and you are ready to go
=====================================
If you later restart your app you need to check your kvs/database for an available token.
If not available then you need to get an Token first. See above.
If available then you directly do this Initialization-steps for Dropbox like this
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
In this case you dont need to use the Auth-Flow to get a token (again). Just use the token you already got!
After this you should be ready to go!
Dropbox is initialized and all Request-Types are initialized too. DbxFileRequests, DbxSharingRequests, DbxUserRequests
You now can start Requesting File-Lists, doing Up- or Downloads...
More Dropbox Tutorials will come...
			
			See this thread for preparing your app to use this Library.
Especially the Manifest-Entry
=========================================================
To use Dropbox inside your App you need a accesstoken.
There are two ways to get a token to work with your or someone others Dropbox.
1. Inside the developer console at Dropbox you can generate a token and use this token then.
The token will be part of your apk and may be extracted easily.
You can use this way if you have an App which is not published on Playstore.
Maybe private apps for internal use only.
This token gives you access to YOUR Dropbox only!
The token will not expire except you generate a new token to use.
2. You ask the user to connect your App to his Dropbox.
To do this you need to call the Authentification-Flow from Dropbox.
A token you get with this way will not expire (sure you can revoke such a Token with a call to revoketoken in the DbxUserAuthRequests object. But usually you dont want to use it). I want to call it a "One-Time token for a User"
You can do it this way:
			
				B4X:
			
		
		
		Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
  Dim auth As DbxAuth
   Dim Dropbox As DropboxV2
   Dim client As DbxClientV2
   Dim config As DbxRequestConfig
   Dim dbxFiles As DbxUserFilesRequests
   Dim dbxSharing As DbxUserSharingRequests
   Dim dbxUsers As DbxUserUsersRequests
   Dim token As String
   Dim DropboxEnabled As Boolean
End sub
	
			
				B4X:
			
		
		
		Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("OAuth")
    auth.Initialize("appkey")
End Sub
	Then, to connect a Users Dropbox you start the Request from within a Button click event for ex.
			
				B4X:
			
		
		
		Sub btnStartOAuth_Click
    auth.startOAuth2Authentication
End Sub
	A Dropbox Activity will appear and ask the User to login and then give your app the rights to use his Dropbox.
If he accept the request then DbxAuth´s OAuth2Token will be filled in Activity_resume
			
				B4X:
			
		
		
		Sub Activity_Resume
    If auth.OAuth2Token <> Null Then
        If auth.OAuth2Token <> "" Then
            token = auth.OAuth2Token
        End If
    End If
	Once you got the token you should write the token down in a KVS or a Database to not loose it!
			
				B4X:
			
		
		
		            Starter.kvs.Put("token", token)
	Now as we got the token we can start to Initialize Dropbox to use this token and get access to the users Dropbox based on the token. Additionally we finalize the initialisation of the different Dropbox Request-types.
			
				B4X:
			
		
		
		            Log("Token available. Dropbox enabled")
            config.Initialize("",token,"","de-de",5)
            Dim dbxhost As DbxHost
            dbxhost.Initialize
            client.Initialize("Dropbox",config,token,dbxhost)
            dbxFiles = client.files
            dbxFiles.setEventname("dbxFiles")
            dbxSharing = client.sharing
            dbxSharing.setEventname("dbxSharing")
            dbxUsers = client.users
            dbxUsers.setEventname("dbxUsers")
	After this Dropbox should be ready initialized and you are ready to go
=====================================
If you later restart your app you need to check your kvs/database for an available token.
If not available then you need to get an Token first. See above.
If available then you directly do this Initialization-steps for Dropbox like this
			
				B4X:
			
		
		
		Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("OAuth")
    Dim dummy As String
    dummy = Starter.kvs.GetDefault("token", "")
    If dummy <> "" Then
        token = dummy
        lblToken.Text = token
        btnListroot.Enabled = True
        Log("Token available (Activity Create. Try to enable Dropbox with this token")
        config.Initialize("",token,"","de-de",5)
        Dim dbxhost As DbxHost
        dbxhost.Initialize
        client.Initialize("Dropbox",config,token,dbxhost)
        dbxFiles = client.files
        dbxFiles.setEventname("dbxFiles")
        dbxSharing = client.sharing
        dbxSharing.setEventname("dbxSharing")
        dbxUsers = client.users
        dbxUsers.setEventname("dbxUsers")
        DropboxEnabled = True
    Else
        DropboxEnabled = False
    End If
    Dropbox.Initialize("")
end sub
	After this you should be ready to go!
Dropbox is initialized and all Request-Types are initialized too. DbxFileRequests, DbxSharingRequests, DbxUserRequests
You now can start Requesting File-Lists, doing Up- or Downloads...
More Dropbox Tutorials will come...