Need to see if your shared folder is taking up space on your dropbox 👨💻? Find out how to check here.
Forum Discussion
VyacheslavB
6 years agoHelpful | Level 5
When I try to get a list of files I get a nil in response (Swift 5)
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?
10 Replies
- Greg-DB6 years ago
Dropbox Community Moderator
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.
- VyacheslavB6 years agoHelpful | Level 5
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";
} - Greg-DB6 years ago
Dropbox Community Moderator
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.
- VyacheslavB6 years agoHelpful | Level 5
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? - VyacheslavB6 years agoHelpful | Level 5
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.
- VyacheslavB6 years agoHelpful | Level 5
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";
} - Greg-DB6 years ago
Dropbox Community Moderator
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.
- VyacheslavB6 years agoHelpful | Level 5
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.") - Greg-DB6 years ago
Dropbox Community Moderator
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?
- VyacheslavB6 years agoHelpful | Level 5
Yes, you are right, I created ScopeRequest twice. Sorry for my carelessness. I finally got a list of files! I am very glad)) Thank you very much for your help!
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!