You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
overjeer
8 years agoHelpful | Level 6
API always returns invalid_access_token, 500 error when i go to "my apps"
Hi,
I understand that there was some service disruption about 10 hours ago. However, I believe this has been resolved now.
When I generate an access token using the dropbox java sdk on my Android app, it is generating an access token fine. However, when I use this access token to authorise my account and run something like dbxClientV2.getUsers().getCurrentAccount(), it always returns an error:
{"error_summary": "invalid_access_token/..", "error": {".tag": "invalid_access_token"}}
I have tried to generate several tokens and they all return the same error.
Also, when I logon as a developer and go to "My Apps" it is returning me a 500 error. Does this mean that there are some API issues?
Any help would be appreciated.
You mentioned this is for an Android app, but the DbxWebAuth you're using isn't meant for Android. The API v2 Java SDK does have specific support for Android though. There's an example Android app using it here.
- To set that up, your AndroidManifest.xml should be set up as shown here.
- You start the flow by calling startOAuth2Authentication as shown here.
- You complete the flow by calling getOAuth2Token as shown here.
- Your app can store and re-use the resulting access token for that user, as the example does here.
- Once you have an access token, you can make a client as shown here.
For the code you are currently using though, it looks like you're getting that 'invalid_access_token' error because you're supplying an authorization code, instead of an access token.
When using DbxWebAuth, you get back an "authorization code", which is not an access token. You need to exchange that authorization code for an access token, as shown here.
- thanks mate. I will give this a go and come back to you. Thanks so much for coming back so swiftly!
- Greg-DBDropbox StaffThanks for the report! The 500 on the web site definitely sounds like a bug on our side. We're looking into it.
For the `invalid_access_token` issue, can you share the code you're using to generate and use the access token? Thanks in advance!- overjeerHelpful | Level 6
Thanks for your response. Here is the code:
It is for my android app. I have to add that until friday it was working OK.
- First I redirect the user to authorise my app. This is done by redirecting them to a URL that gets generated by this code:
val request = DbxWebAuth.newRequestBuilder() .withDisableSignup(true) .withNoRedirect() .build() return mWebAuth.authorize(request)
where mWebAuth is
mWebAuth = DbxWebAuth(mConfig, mAppInfo)
the user is redirected to a webview and if she authorises my app, a token gets generated. This token is stored and a simple command is run for verifying whether the token is valid. For this I need an instance of the DbxClientV2 so I create one:
DbxClientV2(mConfig, "token code")
Then I run the command to see whether the token generated is valid or not:
client.users()?.currentAccount
This is where I get an exception:
{"error_summary": "invalid_access_token/.", "error": {".tag": "invalid_access_token"}}
- Greg-DBDropbox Staff
You mentioned this is for an Android app, but the DbxWebAuth you're using isn't meant for Android. The API v2 Java SDK does have specific support for Android though. There's an example Android app using it here.
- To set that up, your AndroidManifest.xml should be set up as shown here.
- You start the flow by calling startOAuth2Authentication as shown here.
- You complete the flow by calling getOAuth2Token as shown here.
- Your app can store and re-use the resulting access token for that user, as the example does here.
- Once you have an access token, you can make a client as shown here.
For the code you are currently using though, it looks like you're getting that 'invalid_access_token' error because you're supplying an authorization code, instead of an access token.
When using DbxWebAuth, you get back an "authorization code", which is not an access token. You need to exchange that authorization code for an access token, as shown here.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,877 PostsLatest Activity: 12 months agoIf 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 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!