cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
Want to learn some quick and useful tips to make your day easier? Check out how Calvin uses Replay to get feedback from other teams at Dropbox here.

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Access Token Changes Every time I use it

Access Token Changes Every time I use it

Daniel J.18
New member | Level 1

Hi,

I'm working on a DIY motion detection project with a raspberry pi and I was able to save image files to my dropbox by using the generated access token (which is ridiculously long btw). My issue is that the token changes after every use. Is there a way to get a permanent access code?

 

Thanks,

Dan 

6 Replies 6

Greg-DB
Dropbox Staff

What do you mean when you say the access token changes after every use? Do you mean you're clicking the Generate button each time you need an access token? 

Access tokens don't expire by themselves (though they can be manually revoked), so once you generate one for your account, you can store and re-use it programmatically in the future, without generating a new one.

Daniel J.18
New member | Level 1
Originally I was using this code to upload to my dropbox folder...
---------------
from dropbox.client import DropboxOAuth2FlowNoRedirect
from dropbox.client import DropboxClient
 
if conf["use_dropbox"]:
# connect to dropbox and start the session authorization process
flow = DropboxOAuth2FlowNoRedirect(conf["dropbox_key"], conf["dropbox_secret"])
print "[INFO] Authorize this application: {}".format(flow.start())
authCode = raw_input("Enter auth code here: ").strip()
 
# finish the authorization and grab the Dropbox client
(accessToken, userID) = flow.finish(authCode)
client = DropboxClient(accessToken)
print "[SUCCESS] dropbox account linked"
---------------
 
With this, every time I ran the code, It would ask me to enter the dropbox link into my URL, enter my dropbox email and password, and then it would give me the access token. 
 
I tried replacing the lines asking for the token with the token hard coded in...
 
print "[INFO] Authorize this application: {}".format(flow.start())
authCode = raw_input("Enter auth code here: ").strip()
with
authCode = ("ACCESS_TOKEN_HERE")
 
This worked once but then fails when I try to run the program again and I need to get another token.

Greg-DB
Dropbox Staff

Thanks for clarifying. The code you're referring to is an authorization code, not an access token. Authorization codes are temporary, and can only be used once. So, instead of trying to re-use an authorization code or authorizing the app each time, you should store and re-use the resulting access token, passing it directly to the DropboxClient constructor.

Daniel J.18
New member | Level 1

Thanks! 

It worked!

c. chunta
New member | Level 2

Are you really sure that access token will not expire at all. How do I can see the old access tokens ?

Or Can I request token via client api along with the old one?

Steve M.
Dropbox Staff

c. chunta, correct, access tokens don't expire.

You need to store the access token yourself to keep using it. There's no way to ask Dropbox for previous access tokens, but you can always get a new access token by taking a user through the OAuth flow.

Need more support?
Who's talking

Top contributors to this post

  • User avatar
    Steve M. Dropbox Staff
  • User avatar
    c. chunta New member | Level 2
  • User avatar
    Daniel J.18 New member | Level 1
  • User avatar
    Greg-DB Dropbox Staff
What do Dropbox user levels mean?