We’re Still Here to Help (Even Over the Holidays!) - find out more here.
Forum Discussion
whizpool t.
10 years agoNew member | Level 1
how to get all files in pdf format can dropbox convert before i download it through the API
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
19 Replies
Replies have been turned off for this discussion
- whizpool t.10 years agoNew member | Level 1
dropboxpath is /file_name_with_extension
yeah i am sure - whizpool t.10 years agoNew member | Level 1
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."}
- whizpool t.10 years agoNew member | Level 1
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 - Greg-DB10 years ago
Dropbox Community Moderator
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):
- whizpool t.10 years agoNew member | Level 1
I tried the whole procedure
as documented inhttps://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 - Greg-DB10 years ago
Dropbox Community Moderator
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.
- Greg-DB10 years ago
Dropbox Community Moderator
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.)
- whizpool t.10 years agoNew member | Level 1
after how much time the Access Token Generated by this blog post will expire
- Greg-DB10 years ago
Dropbox Community Moderator
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
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!