2011-10-05 18 views
7

Sto provando a implementare il nuovo SDK di Facebook oAuth2 nella mia app, ma non riesco per tutta la vita a capire come dovrei tornare alla mia app dopo aver effettuato l'accesso/autenticato.SDK iOS di Facebook che non torna alla mia app

Il mio obiettivo è pubblicare un messaggio sulla bacheca degli utenti.

Attualmente sto iniziando la procedura di accesso con questo:

-(void)tryFBlogin { 

NSString *appId = @"113142482******"; 

NSArray *permissions = [[NSArray arrayWithObjects:@"publish_stream",nil] retain]; 

TheAppDelegate *theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication]delegate]; 

//Asking for permission 
theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate]; 
theAppDelegate.facebook = [[Facebook alloc] initWithAppId:appId andDelegate:self]; 
Facebook *fb = [theAppDelegate facebook]; 
[fb authorize:permissions]; 

} 

che sta aprendo un browser Safari. Se ho già effettuato l'accesso e ho autorizzato l'app, mi verrà comunicato un messaggio e ho un pulsante OK per la stampa.

Quando si preme il pulsante OK, viene visualizzato un avviso che dice che Safari non può aprire la pagina. Confermo l'avviso e rimango a guardare una finestra di safari vuota.

Se sono disconnesso da Facebook, mi viene presentata la schermata di accesso che compilo e sono quindi presentata con lo stesso di sopra.

Capisco che non ho ancora implementato il comando di pubblicazione da nessuna parte poiché non so dove/quando dovrebbe essere implementato.

Io ho questo metodo delegato al posto ma questo sembra non ottenere chiamato

- (void)fbDidLogin { 

    NSLog(@"fbDidLogin"); 
} 

Questo è il codice che ho in attesa di mettere da qualche parte:

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
kAppId, @"113142482******", 
facebookUrl, @"link", 
@"http://www.domain.com", @"picture", 
@"My Message", @"name", 
@"Caption text!", @"caption", 
@"Message text.", @"message", 
nil]; 

[facebook dialog:@"feed" andParams:params andDelegate:self]; 

Ho anche i seguenti metodi nelle mie apps AppDelegate principale:

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url{ 
    [facebook handleOpenURL:url]; 
return YES; 
} 

Qualsiasi aiuto/suggerimento sarebbe molto un ppreciated.

Grazie

Mark

+0

Hai registrato la tua app per aprire la callback dal sdk di facebook nel tuo plist (CFBundleURLTypes)? – mja

+0

Non sono sicuro se questa fosse la mia stupidità o le istruzioni non chiare, ma il mio problema era definire fb [113142482 ******] quando deve essere fb113142482 ******. Questo è senza parentesi quadre. – crooksy88

risposta

25

Ho avuto questo stesso problema. Giusto per chiarire alcune delle altre risposte, ecco come ho risolto il problema per il mio iPhone app in Xcode 4.2:

.plist file 
    "URL types" 
    "Item 0" 
     "URL Schemes" 
     "Item 0" 
      "fb21593853845xxxx" 
+0

Puoi approfondire un po 'questo argomento? Qual è il valore "fb21593853845xxxx"? – Dermot

+1

Sicuro! Questo è il valore del campo "App ID/Chiave API" (disponibile nella pagina developers.facebook.com/apps in Impostazioni) con un prefisso "fb" aggiunto per la documentazione dell'SDK di Facebook. –

+0

Giuro che il tutorial avrebbe potuto enfatizzare i requisiti della lettera "fb". Dice solo fbYOUR_APP_ID, ho pensato che fosse solo il numero. Non avrei mai pensato che avrei avuto bisogno del "fb" davanti ai numeri. – Zhang

-1

si deve scrivere l'AppID al .plist

0

Arg, è .plist meglio aperta come il codice sorgente, si dovrebbe vedere:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>fb38*******</string> 
     </array> 
    </dict> 
</array> 
Problemi correlati