Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
I have a simple method where I want to get a list of the user's files. I took the implementation of this method from your PhotoWatch example. I also added a print at each step to track each step. But when I try to get a response, I get a nil. What's wrong? This user definitely has files in his Dropbox.
I would be grateful for help.
You just need to create the ScopeRequest object before calling the authorizeFromControllerV2 method.
As for the error, make sure you're only calling the authorizeFromControllerV2 method once. In your screenshot, I see you're calling authorizeFromControllerV2, and then are also calling a method of your own called "openDropboxAutorization". Are you also calling an authorize method from inside "openDropboxAutorization" by any chance?
The response method is given both a "response" and "error" object. If "response" isn't set, you should check "error" to see what went wrong with the call.
I handled the error, the problem was with individual scopes. I have selected the options I want and now I get another error.
API auth error - {
".tag" = "missing_scope";
"required_scope" = "files.metadata.read";
}
The 'missing_scope' error indicates that while the app is permitted to use that scope, the particular access token you're using to make the API call does not have that scope granted. Adding a scope to your app via the App Console does not retroactively grant that scope to existing access tokens.
That being the case, to make any API calls that require that scope, you'll need to get a new access token with that scope.
I created a new token for this account, but I still get this error. It's strange that when I log into the application with this account, I see an another token in the Xcode console. I also try to log into the application under other Dropbox accounts and still get this error. Also I tried disabling all active tokens for this app, but it didn't work.
I can't understand what I'm doing wrong, can you explain in more detail what I should do?
I also noticed that although I have checked the boxes for files.content.read and files.metadata.read, the application for some reason does not request access to them.
I even created a new application in AppConsole, made the necessary changes to the Xcode project, but I still get the same error...
API auth error - {
".tag" = "missing_scope";
"required_scope" = "files.metadata.read";
}
When enabling a new scope for an app, make sure you click the "Submit" at the bottom of the page, or else the changes won't take effect.
And, when configuring the app authorization flow, be sure to specify the particular scopes you want to request. When using SwiftyDropbox, that's done by making a ScopeRequest object with the desired scopes in the "scopes" parameter, and passing that to authorizeFromControllerV2 as shown here. That example only includes "account_info.read", but you would want to add "files.metadata.read" to that list, for example.
At what moment should I create a ScopeRequest object?
I try to do this in the Action of the Login button, but at the time of authorization after clicking Alloy, I receive an Error: Optional("Auth flow failed because of inconsistent state.")
You just need to create the ScopeRequest object before calling the authorizeFromControllerV2 method.
As for the error, make sure you're only calling the authorizeFromControllerV2 method once. In your screenshot, I see you're calling authorizeFromControllerV2, and then are also calling a method of your own called "openDropboxAutorization". Are you also calling an authorize method from inside "openDropboxAutorization" by any chance?
Hi there!
If you need more help you can view your support options (expected response time for a ticket is 24 hours), or contact us on X or Facebook.
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!