Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
I have doc file on my dropbox when i access these files from my app i want them to be in pdf
techincally i want them to be downloaded in pdf
What's the value of dropboxPath? Are you sure that "<Acess Token>" is linked to the same app and account as pMainDelegate.restClient?
dropboxpath is /file_name_with_extension
yeah i am sure
from retrieving from this
MPOAuthCredentialConcreteStore *creds = [[DBSession sharedSession] credentialStoreForUserId:[[NSUserDefaults standardUserDefaults] stringForKey:UID]];
NSLog(@"\n\naccess token key: %@ secret: %@", creds.accessToken, creds.accessTokenSecret);
and when i pass creds.acessToken as <acessToken>
{"error" : "Invalid OAuth2 token."}
and when i pass creds.accessTokenSecret as <acessToken>
{"error" : "Invalid OAuth2 token."}
can you please elaborate the whole method for getting access token for https://content.dropboxapi.com/1/previews/auto as you can see i have already tried the above method.
my scenario is when a user login to app then the access token should get saved in the app
Unfortunately, I don't have a sample implementation of this endpoint in Objective C to share.
Note that the iOS SDK itself uses OAuth 1, so the stored access token from credentialStoreForUserId can't be directly used as an OAuth 2 access token, which is why you're getting that "Invalid OAuth2 token" error.
If you do want to use that stored OAuth 1 access token, there's a blog post that shows how to implement OAuth 1 here:
https://blogs.dropbox.com/developers/2012/07/using-oauth-1-0-with-the-plaintext-signature-method/
(The iOS Core SDK is open source though, so you could alternatively add the source directly and modify the code to add /previews.)
Another option entirely though, which I recommend if your app is still in development mode, is to switch to using the SwiftyDropbox library for API v2, if you can (since it's for Swift):
I tried the whole procedure
as documented in
https://blogs.dropbox.com/developers/2012/07/using-oauth-1-0-with-the-plaintext-signature-method/
but when i passed the end resulted access token to
https://www.dropbox.com/developers-v1/core/docs#previews
the error is still same

i told you i am using objective-c for development and all the issue
and dear you just wasted my day
That error message indicates you're still passing up the access token like an OAuth 2 access token (using the "Bearer" syntax), but if you have an OAuth 1 access token, you need to use the OAuth 1 syntax from the blog post I linked to.
For example, I'm not an Objective-C expert, but something like this (modified from your previous code sample):
MPOAuthCredentialConcreteStore *creds = [[DBSession sharedSession] credentialStoreForUserId:UID];
NSString *authorization = [NSString stringWithFormat:@"OAuth oauth_version=\"1.0\", oauth_signature_method=\"PLAINTEXT\", oauth_consumer_key=\"%@\", oauth_token=\"%@\", oauth_signature=\"%@&%@\", appKey, creds.accessToken, appSecret, creds.accessTokenSecret];
NSString *filePath = @"/Testing/Documents/test.docx";
NSURL *url = [NSURL URLWithString:[
[NSString stringWithFormat:@"https://content.dropboxapi.com/1/previews/auto/%@", filePath] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding
]
];
NSMutableURLRequest *request =
[NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
timeoutInterval:10
];
[request setValue:authorization forHTTPHeaderField:@"Authorization"];
[request setHTTPMethod: @"GET"];
NSError *requestError = nil;
NSURLResponse *urlResponse = nil;
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&requestError];
NSString *fileName = @"test_205881743.pdf";
NSString *localDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *localFilePath = [localDir stringByAppendingPathComponent:fileName];
[response writeToFile:localFilePath atomically:YES];
NSLog(@"%@", localFilePath);
(That doesn't have the error handling implemented though.)
after how much time the Access Token Generated by this blog post will expire
Dropbox API access tokens don't expire.
Users can manually revoke tokens themselves though, e.g. via:
https://www.dropbox.com/account/security
Apps can also revoke access tokens via:
v1: https://www.dropbox.com/developers/core/docs#disable-token
v2: https://www.dropbox.com/developers/documentation/http/documentation#auth-token-revoke
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!