In the previous api login could be performed to the device dropbox account by using the api key and the api secret, is there any way to do this with V2? What a I need is to be able to connect to diferent dropbox accounts in V2?
There was a mistake with the post dont know ho to edit so I follow after "accounts in" before V2.
diferent devices, if this is not possible any more, what would be the best way to implement it on V2?
The app key and secret themselves are not enough to connect to a Dropbox account, in either API v1 or API v2.
To connect to a Dropbox account via the API, you need an "access token". You can get an access token for the user by sending the user through the OAuth app authorization flow. You can find an example implementation of doing this on Android with the API v2 Java SDK here:
https://github.com/dropbox/dropbox-sdk-java/tree/master/examples/android
Specifically, the process is initiated here:
https://github.com/dropbox/dropbox-sdk-java/blob/master/examples/android/src/main/java/com/dropbox/core/examples/android/UserActivity.java#L36
And completed here:
https://github.com/dropbox/dropbox-sdk-java/blob/master/examples/android/src/main/java/com/dropbox/core/examples/android/DropboxActivity.java#L22
One difference between API v1 and API v2 is that API v2 uses OAuth 2 exclusively, where the app secret is not necessary for client-side apps, such as on Android. Only the app key is needed to start the OAuth app authorization flow and get an access token for the current user.
Im not sure if I´m doing this OK, but this is what I do and application crushes:
Auth.startOAuth2Authentication(this, this.RASVIET_APP_KEY_V2);String accessToken = Auth.getOAuth2Token();
this is an activitie that
extends PreferenceActivity
and rasviet_app_key_v2 is my key for the app
I am using 3.0.3 dropbox core sdk and it doesnt find v7 in android.support.v7.app.AppCompatActivity
In build.grade file I add this:
dependencies { compile files('libs/dropbox-core-sdk-3.0.3.jar')}
and add the jar with that name under the libs folder, then I create a new class just as the example with this code:
package com.rasviet.mobility.sincro;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import com.dropbox.core.android.Auth;/** * Created by Jritxal on 01/08/2017. */public class DropboxActivity extends AppCompatActivity {}
and it says it cannont resolve v7 that apears in red and so does AppCompatActivity ofc.
Hello, finally I made it work!!
My prob now is that I suppose I need the
DbxClientV2 client;
variable to keep making calls to the api, I have declared it as public static on my main class (SyncActivity) and do this on the DropboxConnection class:
protected void loadData() {new GetCurrentAccountTask(DropboxClientFactory.getClient(), new GetCurrentAccountTask.Callback() {@Override public void onComplete(FullAccount result) { SyncActivity.client = DropboxClientFactory.getClient(); finish(); }@Override public void onError(Exception e) { Toast.makeText(getApplicationContext(), "Failed to get account details.", Toast.LENGTH_LONG).show(); } }).execute();}
but I´m trying to use it on the onResume method of SyncActivity class to just get email addres of the user like this:
try {if (client != null) { FullAccount account = client.users().getCurrentAccount(); Toast.makeText(SyncActivity.this, "cliente: " + account.getEmail()+ " acc: "+account.toString(), Toast.LENGTH_LONG).show(); }}catch(Exception e){ Toast.makeText(SyncActivity.this, "Excepcion: "+e.getMessage(), Toast.LENGTH_LONG).show();}
and Im getting an exception with message: "null"
It works properly and connects to the client dropbox account, but it never disconnects, are there any examples on how to disconnect to use another account? The only way you can do that now is reinstalling the app