簡體   English   中英

在flickr上上傳圖像在ios中出現一些錯誤

[英]upload image on flickr getting some error in ios

嘿,我想在flickr上共享圖像和視頻,我正在使用以下代碼:-Flickr委托方法,它提供令牌和密鑰。 因此,請給我一些有用的鏈接和教程,以便在flickr上上傳圖像或視頻。

- (void)flickrAPIRequest:(OFFlickrAPIRequest *)inRequest didObtainOAuthRequestToken:(NSString *)inRequestToken secret:(NSString *)inSecret
    {
        // these two lines are important
        dele.flickrContext.OAuthToken = inRequestToken;
        dele.flickrContext.OAuthTokenSecret = inSecret;

        [self Callmethodforupload];


    }

現在上傳視頻的方法是在使用以下代碼的地方:

    -(void)Callmethodforupload
    {

        NSString *secret=dele.flickrContext.OAuthTokenSecret;  //where secret is 7e5cfde9b0023627
        NSString *api_key=@"e1b54412cd5c081bfe2d8d53a1479f12";
        NSString *auth_token=dele.flickrContext.OAuthToken;     // where 72157632058292478-e2f72228fa0c9c67


        UIImage *image=[UIImage imageNamed:@"draft_lens19095926module160793919photo_1343911685a-a-z-a-.jpg"];

        NSData *imageData = UIImageJPEGRepresentation(image, 1.0);


        NSString *uploadSig = [NSString stringWithFormat:@"%@api_key%@auth_token%@", secret, api_key, auth_token];

        //uploadSig=[self md5:uploadSig];

        NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
        NSString *url = [NSString stringWithFormat:@"http://api.flickr.com/services/upload/"];
        [request setURL:[NSURL URLWithString:url]];
        [request setHTTPMethod:@"POST"];


        NSString *boundary = [NSString stringWithString:@"---------------------------7d44e178b0434"];

        [request addValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary] forHTTPHeaderField: @"Content-Type"];

        NSMutableData *body = [NSMutableData data];
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[@"Content-Disposition: form-data; name=\"api_key\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@\r\n", api_key] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[@"Content-Disposition: form-data; name=\"auth_token\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];    
        [body appendData:[[NSString stringWithFormat:@"%@\r\n", auth_token] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[@"Content-Disposition: form-data; name=\"api_sig\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@\r\n", uploadSig] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"photo\"; filename=\"photo.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:imageData];
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [request setHTTPBody:body];

        NSHTTPURLResponse* urlResponse1 = nil; 
        NSError *error1 = [[NSError alloc] init];  
        NSData *responseData1 = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse1 error:&error1];  
        NSString *responseDatastring = [[NSString alloc] initWithData:responseData1 encoding:NSUTF8StringEncoding];


        NSLog(@"Response string %@ \n", responseDatastring);


    }


now i'm get response :-
 <?xml version="1.0" encoding="utf-8" ?>
<rsp stat="fail">
    <err code="98" msg="Invalid auth token" />
</rsp>

so please help me where i wrong

如果您正在尋找一種非常簡單易用的上傳解決方案,則可以使用ShareKit 只需將ShareKit SDK添加到您的應用中,然后像這樣將項目共享給flickr:

#import "SHKFlickr.h" //include the service's header at the top of your class

...

// Create the item to share
SHKItem *item = [SHKItem image:image title:@"Look at this picture!"];

// Share the item
[SHKFlickr shareItem:item];

這里查看完整的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM