We’re Still Here to Help (Even Over the Holidays!) - find out more here.
Forum Discussion
Bob S.15
4 years agoCollaborator | Level 9
Attempt to relink Dropbox? keeps recurring
I updated my iOS app to use the latest Dropbox SDK over the weekend, and initially it seemed fine. But now I notice that whenever I go someplace new and reopen my app, it says my Dropbox account is ...
Bob S.15
4 years agoCollaborator | Level 9
Thanks for the reply. I did change to the V2 version of authorizeFromController, but I did not manually Unlink and relink. Users will not know to do that.
If getCurrentAccount failed, should I check to see if the message is "expired access token" and then have my app unlink them?
I don't know anything about scopes - this is something I need to do on my Dropbox app control panel? Before I can use the v2 function at all? Looking at that link, it looks like my apps already have the permissions they need. But you're saying I still need to do something on the panel? Migrate the settings IU guess? If I do that, will it break things for existing users currently?
Greg-DB
Dropbox Community Moderator
4 years agoYes, if you have any users currently or recently using authorizeFromController, they would be receiving only short-lived access tokens, so you may want to catch that error and prompt them to reauthorize the app using authorizeFromControllerV2 instead in order to get a refresh token.
And yes, you can migrate existing app registrations to be "scoped" using the "Permissions" tab of the app's page on the App Console. That's recommended as it allows more granular control over which pieces of API functionality the app can/can't access. That won't affect any existing access tokens or refresh tokens. You can find more information about that here. Alternatively, you can just pass nil to the scopeRequest parameter on authorizeFromControllerV2 instead.
- Bob S.154 years agoCollaborator | Level 9
So, I migrated my account. And when passing 'nil' for the scope argument, I can unlink, then relink, and it works.
If I want to start using the scope argument then I just need to figure out which scopes I'm using and pass them all there when I call authorize?
- Greg-DB4 years ago
Dropbox Community Moderator
You can pass the scopes explicitly to the scopeRequest parameter on authorizeFromControllerV2, but it's not technically required. Once you've migrated an app to scopes, the scopes you have selected will be the default and maximum scopes that can be used by that app. If you pass pass nil to the scopeRequest parameter on authorizeFromControllerV2, it will default to that set of scopes. You can also set the scopeRequest parameter on authorizeFromControllerV2 to take a subset of those scopes if/when that makes sense for your app (e.g., if it only needs to use a subset of that functionality in any particular scenario).
As a security best practice, you should enable only the specific scopes necessary for all of the functionality used by your app.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X, Facebook or Instagram.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!