2012-02-10 20 views
5

io uso Facebook finestra scrivere un commento sul muro in modo taleFacebook problema finestra di login

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

Se l'utente non è stato effettuato l'accesso prima finestra di dialogo, finestra di login è apparso in dialogo. Va bene, ma quando l'utente preme la finestra di dialogo Accedi viene respinto e l'utente deve richiamare nuovamente la finestra di dialogo, dopodiché postare il mio messaggio sul suo muro. È piuttosto strano forzare due volte la finestra di dialogo di chiamata, quindi qualcuno può aiutarmi con questo problema?

+0

Ho esattamente lo stesso problema a cui non sono riuscito a trovare la risposta. Penseresti che l'SDK di Facebook, quando andrà alla schermata di login, tornerà automaticamente al punto in cui doveva essere effettuato dopo l'accesso. Ho provato prima a effettuare l'accesso, poi a postare, tuttavia se annulli l'accesso devi anche chiudere messaggio di posta. – Darren

risposta

2

Il modo più semplice per risolvere questo problema è quello di memorizzare il tuo params in un ivar. Quindi, quando FBConnect chiama il proprio delegato con fbDidLogin, è possibile rilanciare automaticamente la chiamata dialog:andParams:andDelegate.

La soluzione più lunga e più corretta è che è necessario separare le fasi di autorizzazione e registrazione. È possibile memorizzare fb.accessToken e la data di scadenza in NSUserDefaults, quindi richiamarli la prima volta che si tenta di accedere a FBConnect. Se la data di scadenza è scaduta, si effettua la chiamata a authorize:delegate per ottenere una nuova chiave di accesso. Una volta che fbLogin è completo, puoi postare la finestra di dialogo per continuare.

In alternativa, non è possibile reinventare la ruota e controllare ShareKit http://getsharekit.com/ per una soluzione più completa.

0

Prova questo codice dato a quel legame con quella risposta anche, al posto del tuo codice "HACBOOK ESEMPIO" dato da facebook ... Facebook API dialog page showing error in second time and after that .do dimenticare di dare appId nella parte superiore del vostro viewController ..

+0

@ user979424 Spero che la mia risposta ti possa aiutare .. Ho avuto lo stesso problema una volta .. Ho cancellato con quel codice .. Se hai qualche domanda, sentiti libero di chiedermi .. –

+0

è possibile aprire la finestra di login per il login in facebook piuttosto che, accedi da Safari nell'applicazione Hackbook per iPhone? – Wish

+0

se vuoi effettuare il login senza safari, allora devi disabilitare auth di safari in facebook.h. http://stackoverflow.com/questions/9901740/facebook-api-for-ios/ look @rob answer in questo link. –

0

La soluzione migliore che ho trovato per questo problema è chiamare [dialog di Facebook: @ "feed" e Paramar: params andDelegate: self] ancora una volta nella finestra di dialogo (void): (FBDialog *) dialog didFailWithError: (NSError *) error. Viene chiamato dopo aver effettuato l'accesso, ma la finestra di dialogo viene chiusa.

0

è possibile aprire la finestra di dialogo di accesso per l'accesso in Facebook piuttosto che accedere da Safari nell'applicazione Hackbook per iPhone?