How do you get and use a Refresh Token for the Dropbox API (Python 3.x)
Here is how I did it. I'll try to keep it simple and precise Replace [APP_KEY] with your dropbox app key in the below Authorization URL https://www.dropbox.com/oauth2/authorize?client_id=[APP_KEY]&token_access_type=offline&response_type=code Complete the code flow on the Authorization URL. You will receive an AUTHORIZATION_CODE at the end. Go to Postman and create a new POST request with below configuration - Request URL- https://api.dropboxapi.com/oauth2/token - Authorizatio Use when hitting th
TL;DR
I'll try to keep it simple and precise Replace [APPKEY] with your dropbox app key in the below Authorization URL https://www.dropbox.com/oauth2/authorize?clientid=[APPKEY]&tokenaccesstype=offline&responsetype=code Complete the code flow on the Authorization URL. Go to Postman and create a new POST request with below configuration - Request URL- https://api.dropboxapi.com/oauth2/token - Authorization -> Type = Basic Auth -> Username = [APPKEY] , Password [your value] (Refer this answer for cURL -u option) - Body -> Select "x-www-form-urlencoded" Key Value code [AUTHORIZATIONCODE] granttype authorizationcode After you send the request, you will receive JSON payload containing refreshtoken. ``` { "accesstoken": "sl.**************", "tokentype": "bearer", "expiresin": 14400, "refresh_token": "", "scope": [SCOPES], "uid": "", "account_id": "*********************" } `` In your python application, import dropbox dbx = dropbox.Dropbox( app_key [your value] app_secret [your value] oauth2_refresh_token [your value] ) `` Hope this works for you too! Here is how I did it.
Here is how I did it. I'll try to keep it simple and precise Replace [APPKEY] with your dropbox app key in the below Authorization URL https://www.dropbox.com/oauth2/authorize?clientid=[APPKEY]&tokenaccesstype=offline&responsetype=code Complete the code flow on the Authorization URL. You will receive an AUTHORIZATIONCODE at the end. Go to Postman and create a new POST request with below configuration - Request URL- https://api.dropboxapi.com/oauth2/token - Authorization -> Type = Basic Auth -> Username = [APPKEY] , Password [your value] (Refer this answer for cURL -u option) - Body -> Select "x-www-form-urlencoded" Key Value code [AUTHORIZATIONCODE] granttype authorizationcode After you send the request, you will receive JSON payload containing refreshtoken. `` { "access_token": "sl.****************", "token_type": "bearer", "expires_in": 14400, "refresh_token": "*********************", "scope": [SCOPES], "uid": "**********", "account_id": "***********************" } In your python application, import dropbox dbx = dropbox.Dropbox( app_key [your value] app_secret [your value] oauth2_refresh_token [your value] ) `` Hope this works for you too!
Context: Stack Overflow question (score 19, has accepted answer): As the title says, I am trying to generate a refresh token, and then I would like to use the refresh token to get short lived Access tokens. There is a problem though, in that I'm not smart enough to understand the docs on the dropbox site, and all the other information I've found hasn't worked for me (A, B, C) or is in a language I don't understand. I have tried out all three examples from the github page, as well as user code from other questions on this site. I haven't got anything to work. The most I got was Error: 400 Client Error: Bad Request for url: api.dropboxapi.com/oauth2/token and dropbox.rest.RESTSocketError: Error connecting to "api.dropbox.com": [SSL: CERTIFICATEVERIFYFAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123) :(
When to use
- You hit this exact issue.
- The symptom matches: How do you get and use a Refresh Token for the Dropbox API (Python 3.x).
When NOT to use
- A different error or symptom; the cause here is specific to this one.
Compatibility
Per the linked source.
Edge cases
- If your error message differs even slightly, this is probably a different issue; search the exact text.
- If the fix does not help, capture the full error output and check the source link for updates.