2011-08-31 13 views
13

Ho appena iniziato a vedere un problema con l'autenticazione di Facebook Connect. Se ho installato la versione 3.4.4 dell'app iOS, il metodo fbDidNotLogin del mio delegato viene chiamato con un messaggio di errore "L'utente ha respinto la tua richiesta". Quando disinstalla l'app FB, l'autenticazione funziona correttamente. Qualcun altro sta vedendo questo? Qualcuno sa come posso aggirare questo bug?L'autenticazione non riesce con l'app Facebook installata (iOS)

Ecco la mia chiamata all'oggetto Facebook:

[[app facebook] authorize:[NSArray arrayWithObjects: 
          @"publish_stream", @"offline_access", nil] 
          delegate:app]; 
+2

Aggiornamento: ottengo lo stesso comportamento dall'ultima app di esempio, scaricata oggi. Inserisco il mio ID app e il metodo delegato fbDidNotLogin dell'app di esempio viene chiamato in modo coerente. –

+0

Potresti controllare anche questo: http://stackoverflow.com/questions/30612701/ios-facebook-sdk-your-apps-facebook-login-is-broken – iYoung

risposta

15

Assicurati che l'ID del pacchetto di applicazioni sia impostato correttamente sulla pagina Facebook della tua app.

Penso che abbiano appena iniziato a far rispettare questo, motivo per cui si è appena rotto.

Dovresti essere in grado di cambiare questo andando nelle impostazioni delle tue app su Facebook e facendo clic su "Modifica impostazioni" dalla schermata in cui ottieni il tuo ID app. La sezione "Mobile Native" ti consentirà di modificare il tuo ID bundle iOS in modo che corrisponda all'Identificativo del bundle presente in Info.plist.

Spero che questo aiuti qualcuno! Sappi che puoi farlo funzionare con l'ultima app di Facebook, ed è probabilmente un problema di configurazione come quello descritto sopra.

+1

Bingo. Grazie per il puntatore. L'ID bundle è sensibile al maiuscolo/minuscolo, che era il mio problema.Qual è strano è che si comporta in modo diverso a seconda della versione dell'applicazione FB installata. Mi aspetto che questo tipo di applicazione sia una funzione della logica lato server di Facebook, non del client -side –

+0

@Steve - Questa verifica richiede il supporto client, in quanto è il client che può (e deve) inviare (o ricevere) l'ID del bundle per la verifica. L'applicazione potrebbe benissimo essere sul lato server stesso.Solo che consentono la versione più vecchia dell'app FB per funzionare senza dover eseguire la verifica dell'ID bundle di altre app. Altrimenti ogni installazione dell'app FB iOS doveva essere aggiornata per far funzionare qualsiasi altra app connessa con FB, il che non è certamente auspicabile. – brahmana

+0

Questo ha un senso, anche se avrebbero dovuto inviare informazioni ID bundle da sempre. E a quanto pare non inviano ancora l'ID bundle all'implementazione di autenticazione per non app, quindi è incoerente. Tuttavia, sono ancora scontento di Facebook per (1) non riuscire a inviare email agli sviluppatori in merito ai cambiamenti delle policy, dandoci un'idea di cosa controllare (sicuramente conoscono i nostri indirizzi email) e (2) dare un messaggio di errore non descrittivo ("L'utente ha negato la richiesta" - no, se fosse stato "l'ID bundle iOS non corrisponde" sarebbe stato facile rintracciare). –

4

Posso confermare che sto vivendo lo stesso problema qui. Ho backtraced un po ', e vedo l'applicazione Facebook si sta aprendo la mia app con questa stringa di query nell'URL:

ERROR_REASON = utente% 5Fdenied & errore = accesso% 5Fdenied & ERROR_DESCRIPTION = Il% 2Buser% 2Bdenied% 2Byour % 2Brequest% 2E% 3F% 5F

Credo che, purtroppo, non c'è niente che possiamo fare altro che aspettare: S

+0

Sfortunatamente, l'app si connette usando l'alternativa webView è non è una soluzione per me. Non credo che peggiorare l'integrazione di Facebook in questo modo (è molto più semplice per gli utenti che hanno effettuato il login nell'app di Facebook) inviando un aggiornamento a Apple è una buona idea :( –

0

Come sottolineato in this thread, è possibile forzare FBConnect di utilizzare Safari finestre di dialogo, invece di commutazione veloce-app all'app FB installata. Basta commentare il blocco di codice in Facebook.m che richiama l'app FB.

Questo è un modo per aggirare il bug FB fino a quando non risolvono la loro app. Non è una soluzione ideale, ma funziona.

1

È piuttosto ovvio, ma se l'applicazione è in modalità sandbox, è necessario assicurarsi che tutti gli utenti che accedono con esso siano un "tester" o superiore nelle impostazioni dell'app Facebook. : - $

Problemi correlati