2012-11-05 8 views
7

Nadchodzi mój kod objc:Facebook w iOS6.0 używać SLRequest załadować zdjęcie nie udało i tak

ACAccountStore *facebookaccount = [[ACAccountStore alloc] init]; 
ACAccountType *facebookaccountType = [facebookaccount accountTypeWithAccountTypeIdentifier: ACAccountTypeIdentifierFacebook]; 
// Specify App ID and permissions 
NSDictionary *options = @{ ACFacebookAppIdKey: @"1234567899876543", ACFacebookPermissionsKey: @[@"publish_stream"], ACFacebookAudienceKey: ACFacebookAudienceFriends }; 
[facebookaccount requestAccessToAccountsWithType:facebookaccountType options:options completion:^(BOOL granted, NSError *error) { 
    if(granted) { 
     NSArray *accountsArray = [facebookaccount accountsWithAccountType:facebookaccountType]; 
     if ([accountsArray count] > 0) { 
      ACAccount *facebookAccount = [accountsArray objectAtIndex:0]; 

      NSString *sendmessage = @"Face"; 
      NSData *myImageData = UIImagePNGRepresentation(imageSource); 

      SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST URL:[NSURL URLWithString:@"https://graph.facebook.com/me/photos"] parameters:nil]; 

      [facebookRequest addMultipartData:myImageData withName:@"source" type:@"multipart/form-data" filename:nil]; 
      [facebookRequest addMultipartData:[sendmessage dataUsingEncoding:NSUTF8StringEncoding] withName:@"message" type:@"multipart/form-data" filename:nil]; 

      [facebookRequest setAccount:facebookAccount]; 

      [facebookRequest performRequestWithHandler:^(NSData* responseData, NSHTTPURLResponse* urlResponse, NSError* error) { 
       if (error == nil) { 
        NSLog(@"responedata:%@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]); 
       }else{ 
        NSLog(@"%@",error.description); 
       } 
     } 
    } 
    else 
    { 
     NSLog(@"error description : %@",[NSString stringWithFormat:@"%@", error.localizedDescription]); 
    } 
}]; 

końcu dostać te respone dane:

responedata: { "error": { "message ":" (# 324) Wymaga przesłania pliku "," typu ":" OAuthException "," code ": 324}}

Proszę mi pomóc!

Odpowiedz

24

Mogę pomyślnie przesłać zdjęcie, dołączając nazwę pliku do addMultipartData i przekazując wiadomość jako część opcji SLRequest.

Kod:

NSDictionary *parameters = @{@"message": sendmessage}; 

SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook 
              requestMethod:SLRequestMethodPOST 
                 URL:[NSURL URLWithString:@"https://graph.facebook.com/me/photos"] 
                  parameters:parameters]; 

[facebookRequest addMultipartData: myImageData 
            withName:@"source" 
             type:@"multipart/form-data" 
            filename:@"TestImage"]; 

facebookRequest.account = facebookAccount; 

[facebookRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) 
{ 
    // Log the result 
}]; 
+0

Dziękuję bardzo. Szukałem tego samego, ale z wbudowaną strukturą Twitter na iOS. Bardzo pomocne naprawdę :) – Supertecnoboff

+0

Dzięki stary! brakowało, aby dodać nazwę pliku z wieloczęściowym .. – Nikunj

+0

hi @MitchM znasz sposób na udostępnianie wielu obrazów z tą samą logiką za pomocą 'SLRequest'? – jose920405

Powiązane problemy