Processo documentato per l’utilizzo di Facebook Connect per iPhone per caricare le foto

Dopo aver guardato, sono arrivato attraverso questo post sui forum di Facebook:

collegamento

Stanno alimentando l’object facebook un UIImage. Sembra logico, ma dove è documentato? La documentazione dell’API è generalizzata su tutte le piattaforms. Dove sono i requisiti specifici di iPhone per gli argomenti e i loro tipi di dati?

Grazie

****** Aggiornamento ***** Non mi sono ancora imbattuto in documenti API relativi a Cocoa. Tuttavia, ho raccolto le informazioni di cui avevo bisogno collegando le informazioni del forum, il codice di esempio di Facebook e alcuni tipi di colla.

Speriamo che pubblichino qualcosa di un po ‘più concreto nei prossimi mesi.

Per completezza:

Quanto segue spiega come interagire con Facebook Connect: https://developers.facebook.com/docs/guides/web/

Le chiamate API: https://developers.facebook.com/docs/reference/api/

Se hai bisogno di permessi estesi: https://developers.facebook.com/docs/guides/policy/examples_and_explanations/Extended_Permissions/

Un bel wrapper Obj-C su Mobile Orchard: http://www.mobileorchard.com/marketing-in-code-part-2- set-a-users-status-in-facebook-from-an-iphone-app- un dimostrativi /

Quello che segue è la mia implementazione di un SessionViewController:

#import "SessionViewController.h" #import "FBConnect.h" #import "FBFeedDialog.h" /////////////////////////////////////////////////////////////////////////////////////////////////// // This application will not work until you enter your Facebook application's API key here: static NSString* kApiKey = @"XXXXXXXXXXXXXXXXXX"; // Enter either your API secret or a callback URL (as described in documentation): static NSString* kApiSecret = @"XXXXXXXXXXXXXXXXXX"; // @""; /////////////////////////////////////////////////////////////////////////////////////////////////// @implementation SessionViewController @synthesize label = _label; @synthesize anImage; - (void)done:(id)sender{ [self dismissModalViewControllerAnimated:YES]; } /////////////////////////////////////////////////////////////////////////////////////////////////// // NSObject - (id)init { if (self = [super init]) { _session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain]; } return self; } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:@"SessionViewController" bundle:nibBundleOrNil]) { _session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain]; } return self; } - (void)dealloc { [_session release]; [anImage release]; [super dealloc]; } /////////////////////////////////////////////////////////////////////////////////////////////////// // UIViewController - (void)viewDidLoad { [_session resume]; _loginButton.style = FBLoginButtonStyleWide; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return NO; } /////////////////////////////////////////////////////////////////////////////////////////////////// // FBDialogDelegate - (void)dialog:(FBDialog*)dialog didFailWithError:(NSError*)error { _label.text = [NSString stringWithFormat:@"Error(%d) %@", error.code, error.localizedDescription]; } /////////////////////////////////////////////////////////////////////////////////////////////////// // FBSessionDelegate - (void)session:(FBSession*)session didLogin:(FBUID)uid { _permissionButton.hidden = NO; _feedButton.hidden = NO; NSString* fql = [NSString stringWithFormat: @"select uid,name from user where uid == %lld", session.uid]; NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"query"]; [[FBRequest requestWithDelegate:self] call:@"facebook.fql.query" params:params]; } - (void)sessionDidLogout:(FBSession*)session { _label.text = @""; _permissionButton.hidden = YES; _feedButton.hidden = YES; } /////////////////////////////////////////////////////////////////////////////////////////////////// // FBRequestDelegate - (void)request:(FBRequest*)request didLoad:(id)result { if([result isKindOfClass:[NSArray class]]){ NSArray* users = result; NSDictionary* user = [users objectAtIndex:0]; NSString* name = [user objectForKey:@"name"]; _label.text = [NSString stringWithFormat:@"Logged in as %@", name]; } } - (void)request:(FBRequest*)request didFailWithError:(NSError*)error { _label.text = [NSString stringWithFormat:@"Error(%d) %@", error.code, error.localizedDescription]; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (IBAction)askPermissionForPhotoUpload:(id)target { FBPermissionDialog* dialog = [[[FBPermissionDialog alloc] init] autorelease]; dialog.delegate = self; dialog.permission = @"photo_upload"; [dialog show]; } - (IBAction)publishPhoto:(id)target{ NSMutableDictionary *args = [[[NSMutableDictionary alloc] init] autorelease]; [args setObject:self.anImage forKey:@"image"]; FBRequest *uploadPhotoRequest = [FBRequest requestWithDelegate:self]; [uploadPhotoRequest call:@"photos.upload" params:args]; } - (void)askPermission:(id)target { FBPermissionDialog* dialog = [[[FBPermissionDialog alloc] init] autorelease]; dialog.delegate = self; dialog.permission = @"status_update"; [dialog show]; } - (void)publishFeed:(id)target { FBFeedDialog* dialog = [[[FBFeedDialog alloc] init] autorelease]; dialog.delegate = self; dialog.templateBundleId = 9999999; dialog.templateData = @"{\"key1\": \"value1\"}"; [dialog show]; } @end 

Joe Hewitt (l’autore dell’app Facebook di Facebook) ha pubblicato grandi parti dell’applicazione Facebook come framework Three20. È ospitato su github .