2012-10-20 30 views

Odpowiedz

24

Jest to najprostszy sposób znalazłem

- (void) postImageToFB:(UIImage*)image 
{ 
    NSData* imageData = UIImageJPEGRepresentation(image, 90);  
    NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            @"This is my drawing!", @"message", 
            imageData, @"source", 
            nil]; 

    [FBRequestConnection startWithGraphPath:@"me/photos" 
           parameters:params 
           HTTPMethod:@"POST" 
          completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 

          }]; 
} 

jeśli chcesz pisać na przyjaciela ściany, zmienić @"me/photos" przez @"[friendID]/photos"

Następnie poprosić o uprawnienia do publikowania i wywołać metodę

if ([FBSession.activeSession.permissions indexOfObject:@"publish_stream"] == NSNotFound) 
{ 
    // No permissions found in session, ask for it 
    [FBSession.activeSession reauthorizeWithPublishPermissions:[NSArray arrayWithObject:@"publish_stream"] 
               defaultAudience:FBSessionDefaultAudienceFriends 
              completionHandler:^(FBSession *session, NSError *error) 
    { 
     // If permissions granted, publish the story 
     if (!error) [self postImageToFB:currentDrawing]; 
    }]; 
} 
// If permissions present, publish the story 
else [self postImageToFB:currentDrawing]; 

Określenie "[nazwa aplikacji] Zdjęcia" zostanie utworzony album, jeśli nie istnieje

To działa dla mnie!

+4

ma potrzeby NSData, wystarczy zapisać go jako UIImage i zmienić klucz obraz jako „obraz”, wykres API zajmie się resztą :-) –

+0

Twoja kompresja na UIImageJPEGRepresentation powinna zawierać się w przedziale 0-1.0 .. więc zamiast 90 masz na myśli .9 – badweasel

Powiązane problemy